我正在使用ColdFusion 8。
我正在创建一些代码,用于创建文件夹并插入文件。该文件稍后将由人类调整。
我创建了这样的目录:
<cfdirectory action="create" directory="#LOCAL.PathToCreate#">
接下来,我需要创建一个名为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">
Test-21-index.txt的内容中包含ColdFusion代码。我遇到的问题是,当我包含文件Test-21-index.txt时,正在运行ColdFusion代码。
如何将代码创建为在创建文件期间未运行的文本文件?
更新〜有了这么多可用于实现我的解决方案的工具,我只需要正确的组合。我只是复制了文件,而不是使用cfsavecontent读取文件,然后编写文件。啊。这太容易了。
<cffile action="copy" source="#CurrentDirectory#\#LOCAL.FileToInclude#" destination="#NewTreatmentPath#\#LOCAL.NewFile#">
答案 0 :(得分: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">
代码未经测试,但我认为它应该可行。我相信你需要稍微改变test-21-index.txt
的路径。