【发布时间】:2014-01-08 18:57:05
【问题描述】:
我有一个使用 psftp 从 Linux 服务器获取文件的批处理脚本
//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 上。
【问题讨论】:
-
将您的第三行放入括号中并添加
>>test.txt,如下所示:(echo <...>\runCmds.bat)>>test.txt。有什么错误吗? -
好电话。所以它提示了我的密码几次,我使用了一个 private_key。所以任务设置为使用SYSTEM来运行它,也许它无权访问我的密钥?我确认它适用于我的用户名和密码。无论如何让系统知道我的私钥?无论如何,这就是我的问题。顺便说一句,感谢您的帮助。
-
我有选美加载“C:\Program Files (x86)\PuTTY\pageant.exe C:\Program Files (x86)\PuTTY\private_key.ppk” 应该开始选美和加载私钥,但是日志多次输出“用户密码:”。所以看起来它没有使用它们的键......
-
任务调度默认使用系统账号,没有网络权限。
标签: windows batch-file scheduled-tasks windows-server-2008-r2