我尝试了这个,但它不起作用:
SET src_path ="\\xyz\abc"
SET tgt_path ="c:\MyNightlyBuyild"
FOR /F "delims=|" %%I IN ('DIR "%src_path%" /B /O:D /S') DO SET NewestFile=%%I
Xcopy "%NewestFile%" "%tgt_path%"
答案 0 :(得分:0)
在Windows记事本中保存的批处理代码,在“另存为”对话框中选择了 ANSI 编码,在命令提示符窗口中执行时可以正常工作,以查看可能的输出错误消息:
s: 10
i: 1000
l: 1000000
f: 230.47
d: 30949.37
当然,我的用户帐户拥有遍历指定服务器共享上目录的权限,并在SET "src_path=\\Server\Share\My Folder"
SET "tgt_path=C:\Temp"
FOR /F "delims=" %%I IN ('DIR "%src_path%" /B /O:D /S') DO SET "NewestFile=%%I"
XCOPY "%NewestFile%" "%tgt_path%"
中以递归方式读取文件。
但是选择了 Unicode 编码保存相同的批处理代码,导致将文件存储为带有BOM文件的UTF-16 LE,导致在错误消息中从命令提示符窗口执行:
'■'不被视为内部或外部命令,
可操作程序或批处理文件。
双击批处理文件时也会输出错误消息,但与在命令提示符窗口中运行批处理文件相比,命令进程自动关闭。
注意1:始终使用Windows记事本将批处理文件保存为 ANSI 编码文件。
注意2:始终在命令提示符窗口中测试批处理文件以查看错误消息。