需要批处理脚本将包含子文件夹的最新构建文件夹复制到本地

时间:2016-07-21 08:13:22

标签: windows batch-file cmd build scripting

我尝试了这个,但它不起作用:

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%"

1 个答案:

答案 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:始终在命令提示符窗口中测试批处理文件以查看错误消息。