2

我需要在我们的网络上运行一个远程脚本来导入文件。如果我手动运行它,我已经设置了 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>

任何想法将不胜感激...

谢谢,布赖恩

4

1 回答 1

1

尝试

<cfexecute name="c:\winNt\system32\cmd.exe"
 arguments="/c C:\inetpub\wwwroot\myapp\plink\import.bat" timeout="100">
</cfexecute> 
于 2014-10-01T14:45:43.560 回答