我需要在我们的网络上运行一个远程脚本来导入文件。如果我手动运行它,我已经设置了 plink 并让它根据需要工作。
plink name@localserver -ssh -i myKey.ppk /home/here/scriptName.sh
我们在 ColdFusion 中编写代码,因此它将使用 CFExecute 在 CFThread 中运行。当我通过代码运行 cfexecute 时不会出错,它只是不会触发脚本。
在我的研究中,我发现有人说 cfexecute 的参数字符串存在一些问题,一个更好的主意是创建一个批处理文件并使用 cfexecute 运行该批处理文件。
所以我创建了一个批处理文件。导入.bat
C:\inetpub\wwwroot\myapp\plink\plink.exe name@localserver -ssh -i myKey.ppk /home/here/scriptName.sh)
如果我手动运行批处理文件,它会再次工作。
导入.bat
但如果我通过 cfexecute 运行它,它什么也不做。
为了测试 cfexecute 我让它运行两个命令,第一个是我需要工作的,第二个是测试。第二个根据需要工作。第一个不是屏幕或日志文件出错。如果我输入了错误的语法,它会这样做。第二个是根据需要写入文件。
(下面的代码)
starting
<cfoutput>
<cfexecute name = "C:\inetpub\wwwroot\myapp\plink\import.bat" errorfile="C:\inetpub\wwwroot\myapp\logs\#timeformat( now(),"HHMMSS") #.log" ></cfexecute>
<cfexecute name = "C:\WinNT\System32\netstat.exe"
arguments = "-e"
outputFile = "C:\Temp\#timeformat( now(),"HHMMSS") #.txt"
timeout = "1">
</cfexecute>
</cfoutput>
the end
<cfabort>
任何想法将不胜感激...
谢谢,布赖恩