服务器是windows。
我要做的是创建一个批处理,该批处理将运行一个程序,该程序输出到一个临时文件,然后我将读取该文件。我能够创建这个批处理,据我所知,一切正常,直到我回到使用 cffile 来读取“更改”文件......在这种情况下,它似乎没有任何改变。但是,如果我要通过 windows 或 ftp 资源管理器实际打开文件,我可以看到它已被更改。
请参阅下面的示例代码:
<cfset path = "D:/tests/" />
<cfset tempfile_ = GetTempFile(path, "test_")>
<cfset tempfile_batch = getTempFile(path, "testBatch_")>
<cffile action="rename"
destination="#replaceNocase(tempfile_batch, '.tmp', '.bat')#"
source="#tempfile_batch#" />
<cfset tempfile_batch = replaceNocase(tempfile_batch, '.tmp', '.bat') />
<cfset batchContents = '' />
<cfsavecontent variable="batchContents">
@echo off
<cfoutput>
echo "this is a test" > "#tempfile_#"
</cfoutput>
exit
</cfsaveContent>
<cffile
action="write"
file="#tempfile_#"
output='init text' />
<cffile
action="write"
file="#tempfile_batch#"
output='#batchContents#' />
<cfexecute name="#tempfile_batch#" />
<cffile action="read" file="#tempfile_#" variable="foo">
<cfoutput>
fileName: #tempfile_# <br />
result is...
#foo#
</cfoutput>
当我实际打开临时文件时,内容是“这是一个测试”,而#foo# 是“初始化文本”
知道为什么吗?