如何包含ColdFusion代码但没有处理?

Evi*_*mes 2 coldfusion cffile coldfusion-8

我正在使用ColdFusion 8.

我正在创建一些代码,用于创建文件夹并插入文件.该文件稍后将由人类调整.

我创建这样的目录:

<cfdirectory action="create" directory="#LOCAL.PathToCreate#">
Run Code Online (Sandbox Code Playgroud)

接下来,我需要创建一个名为index.cfm的文件.现在,需要进入index.cfm文件的内容在Test-21-index.txt中.我创建这样的内容:

<cfsavecontent variable="LOCAL.MyContent">
    <cfinclude template="Test-21-index.txt">
</cfsavecontent>
<cffile action="write" file="#NewTreatmentPath##LOCAL.NewFile#" output="#LOCAL.MyContent#" nameconflict="overwrite">
Run Code Online (Sandbox Code Playgroud)

Test-21-index.txt的内容中包含ColdFusion代码.我遇到的问题是当我包含文件Test-21-index.txt时,正在运行ColdFusion代码.

如何将代码创建为在创建文件期间未运行的文本文件?

更新〜有了这么多可用于实现我的解决方案的工具,我只需要正确的组合.我只是复制了文件,而不是使用cfsavecontent读取文件,然后编写文件.啊.这太容易了.

<cffile action="copy" source="#CurrentDirectory#\#LOCAL.FileToInclude#" destination="#NewTreatmentPath#\#LOCAL.NewFile#">
Run Code Online (Sandbox Code Playgroud)

Sea*_*lsh 6

cfinclude您可以使用cffile读取文件然后在cfsavecontent标记中输出其内容,而不是使用它:

<cffile action="read" file="test-21-index.txt" variable="fileContent" />

<cfsavecontent variable="LOCAL.MyContent">
   <cfoutput>#filecontent#</cfoutput>
</cfsavecontent>

<!--- or even <cfset LOCAL.MyContent = fileContent /> --->

<cffile action="write" file="#NewTreatmentPath##LOCAL.NewFile#" output="#LOCAL.MyContent#" nameconflict="overwrite">
Run Code Online (Sandbox Code Playgroud)

代码未经测试,但我认为它应该有效.不过,我相信你需要以test-21-index.txt不同的方式解决这条道路.

  • 我还要补充一点,如果你所做的只是读取文件的内容并将其写入另一个文件,那么你可以使用CFFILE的"复制"操作并绕过完全读取/写入内容并将其减少到一行并节省一些处理时间. (3认同)
  • 当你已经拥有#filecontent#时,为什么还需要cfsavecontent?这是多余的. (2认同)