我有一个简单的批处理过程,它将SFTP文件作为SFTP服务器。批处理代码在这里:
option batch abort
option confirm off
open sftp://server -hostkey="ssh-rsa 2048 00:aa:00:aa:dd:11:22:11:22:00:55:66:ee:dd:65:dd"
cd \inbound\
put -transfer=ascii c:\apps\ftpfiles\myfile-2015-07-29.txt
exit
我想在单独的日志文件中记录任务的日志(成功,错误)。
我试过这样做:
@Rem ****************************************
@Rem SFTP
@Rem ****************************************
@Rem Send required log to c:\apps\ftplogs\benftp01.log
@echo *** SFTP Process *** >> c:\apps\ftplogs\benftp01.log
@echo RUN DTTM : 29-07 >> c:\apps\ftplogs\benftp01.log
Rem Create Windows SFTP Script
@echo Starting FTP the PGP file... >> c:\apps\ftplogs\benftp01.log
option batch abort
option confirm off
open sftp://server -hostkey="ssh-rsa 2048 00:aa:00:aa:dd:11:22:11:22:00:55:66:ee:dd:65:dd"
cd \inbound\
put -transfer=ascii c:\apps\ftpfiles\myfile-2015-07-29.txt
exit
@echo *** SFTP End *** >> c:\apps\ftplogs\benftp01.log
运行上面的脚本我的结果是Invalid函数。任何线索专家?
答案 0 :(得分:0)
最后我解决了这个问题,
因此,当您使用SFTP文件传输时,在脚本一侧添加日志选项会更加困难,并且根据所使用的第三方客户端(如OpenSSH或WinScp)的类型,脚本会有所不同。因此,您需要强制调度程序在操作触发器选项中生成日志文件。然后你可以在那里添加一个参数并将其作为参数
/log="c:\apps\ftpLogs\benftp01.log"
答案 1 :(得分:0)
我的情况有些不同。我调用 sftp.exe
的脚本捕获了程序的所有输出。但是,当您使用 sftp.exe
命令行参数运行 SFTP 批处理脚本时,-b
会将自身置于“安静模式”,因此我的日志没有显示每个文件的详细信息。
我的解决方案是添加 -N
命令行参数。以下是手册中对该选项的说明:
-N Disables quiet mode, e.g. to override the implicit quiet mode set by the -b flag.