批处理脚本放在任务计划程序时有奇怪的问题

时间:2014-01-08 18:57:06

标签: windows batch-file scheduled-tasks windows-server-2008-r2

我有一个使用psftp从Linux服务器获取文件的Batch脚本

// test.bat的

@echo off
echo "starting script" >> test.txt
echo y | "C:\Program Files (x86)\PuTTY\psftp.exe" user@server.com -b C:\runCmds.bat
exit

// runCmds.txt

cd /this/directory
lcd C:\directory
mget ./*.complete
mget ./*.zip
quit

这是一个极端简化的版本,但它是我所拥有的问题的基础。如果我手动运行它,我的整个批处理文件,复杂性和所有将运行完美。我的预定任务将成功运行,因为没有错误,test.txt日志文件将显示我设置的文本。我已经看到了计划任务和双引号的一些问题,但我不确定这是否是问题。看起来psftp命令无法正常工作。这是在Windows Server 2008 R2上。

1 个答案:

答案 0 :(得分:0)

好的,评论让我得到了以下解决方案。

我正在使用SYSTEM来运行计划任务,该任务无法访问我的private_key。我更新了这个,以使用private_key文件的所有者Administrators。然后,我使用-i参数指定private_key,而不是使用私钥加载pageant。一切都很好。谢谢!

// test.bat

@echo off
echo "starting script" >> test.txt
echo y | "C:\Program Files (x86)\PuTTY\psftp.exe" user@server.com 
    -i "C:\Program Files (x86)\PuTTY\private_key.ppk" -b C:\runCmds.bat
exit