我正在尝试将文件从一个驱动器复制到另一个驱动器;它正在工作,但我需要将其结果保存为 .txt 文件。为此,我编写了这个命令,但是虽然它在手动运行时会生成文件,但当我通过任务计划程序运行该文件时,它不会生成 .txt 文件。
@echo on
(
copy W:\DUMP\UATDP-%date:~7,2%.DMP F:\DP_DUMP\UATDP-%date:~7,2%.DMP /Y
copy W:\DUMP\IUATDP-%date:~7,2%.DMP F:\DP_DUMP\IUATDP-%date:~7,2%.DMP /Y
) > LOG_COPY-%date:~7,2%.TXT
有人可以帮我完成这个任务吗?
答案1
您需要指定工作目录。当您手动执行批处理文件时,您将从批处理文件所在的目录中执行它。如果不指定工作目录,任务调度程序将从其自己的工作目录中执行它。(顺便说一句,这可能意味着您在任务调度程序的工作目录中有一些文本文件)
致用户宠物食品的观点是,最简单的方法是添加您要保存的 .txt 文件的完整文件路径,无论它是与批处理相同的文件夹,还是桌面,还是日志文件目录。
另一种方法是cd
在保存文件之前立即添加一行来更改目录,或者pushd
如果您确实想不必要地使事情复杂化,则使用它。
答案2
你的最后一句话:
) > LOG_COPY-%date:~7,2%.TXT
只需将其替换为
) > D:\logs\log_copy_%date:~7,2%.txt