输出ftp命令不重定向到文件

时间:2018-02-23 14:24:43

标签: batch-file scheduled-tasks

我有一个将多个文件从Windows Server 2016传输到FTP站点的进程。计划任务每​​小时运行一个批处理脚本来实现此目的。

批处理脚本中的原始代码如下

@echo off
echo user username > ftpcmd.dat
echo password >> ftpcmd.dat
echo bin >> ftpcmd.dat
echo cd private/DirA >> ftpcmd.dat
echo put "D:\Data\Export\FileA.csv" >> ftpcmd.dat
echo quit >> ftpcmd.dat
ftp -n -s:ftpcmd.dat my.address.co.uk
del ftpcmd.dat

@echo off
echo user username > ftpcmd.dat
echo password >> ftpcmd.dat
echo bin >> ftpcmd.dat
echo cd private/DirB >> ftpcmd.dat
echo put "D:\Data\Export\FileB.csv" >> ftpcmd.dat
echo quit >> ftpcmd.dat
ftp -n -s:ftpcmd.dat my.address.co.uk
del ftpcmd.dat

cd /d D:\Data\Export\
del *.csv

此代码有效。但是我需要一个FTP上传日志,所以我想添加" > log.txt"和" >> log.txt" ftp命令会给我这个。新的批处理文件是

@echo off
echo user username > ftpcmd.dat
echo password >> ftpcmd.dat
echo bin >> ftpcmd.dat
echo cd private/DirA >> ftpcmd.dat
echo put "D:\Data\Export\FileA.csv" >> ftpcmd.dat
echo quit >> ftpcmd.dat
ftp -n -s:ftpcmd.dat my.address.co.uk > log.txt
del ftpcmd.dat

@echo off
echo user username > ftpcmd.dat
echo password >> ftpcmd.dat
echo bin >> ftpcmd.dat
echo cd private/DirB >> ftpcmd.dat
echo put "D:\Data\Export\FileB.csv" >> ftpcmd.dat
echo quit >> ftpcmd.dat
ftp -n -s:ftpcmd.dat my.address.co.uk >> log.txt
del ftpcmd.dat

cd /d D:\Data\Export\
del *.csv

这不起作用。它不会生成日志文件,也不会上传任何文件(尽管它最后会删除文件夹中的csv文件)。

还值得注意的是,直接运行批处理文件(只需双击它)就会上传文件并创建log.txt,但是当从任务计划程序运行时它会失败。

我已经检查了权限,并且任务设置为使用我的用户帐户(即我已经测试批处理文件的帐户)运行,实际上只要没有日志文件就可以运行输出

关于接下来要检查什么的任何想法?或者有另一种获取ftp对话日志的方法吗?也许将它写入变量并在脚本末尾输出变量?

我很高兴将问题转移到Server Fault,如果它更合适的话。

0 个答案:

没有答案