【问题标题】:Need batch script to copy latest build folder including subfolder into local需要批处理脚本将最新的构建文件夹(包括子文件夹)复制到本地
【发布时间】:2016-07-21 08:13:21
【问题描述】:

我试过了,但它不起作用:

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

【问题讨论】:

  • 错误是什么?
  • 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%" 我按照你说的编辑了,但它仍然没有复制文件夹
  • 没有错误..它的执行没有任何错误

标签: windows batch-file cmd build scripting


【解决方案1】:

使用 Windows 记事本保存的批处理代码在“另存为”对话框中选择了 ANSI 编码,在从命令提示符窗口中执行以查看可能的输出错误消息时运行良好:

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

当然,我的用户帐户拥有遍历指定服务器共享上的目录并读取在 \\Server\Share\My Folder 中递归找到的文件的权限。

但保存相同的批处理代码并选择 Unicode 编码导致将文件存储为带有 BOM 文件的 UTF-16 LE 会导致从错误消息中的命令提示符窗口中执行:

'■' 未被识别为内部或外部命令,
可运行的程序或批处理文件。

在双击批处理文件时也会输出错误消息,但在这种情况下,与在命令提示符窗口中运行批处理文件相比,命令进程会自动关闭。

注意 1:在使用 Windows 记事本时,始终将批处理文件保存为 ANSI 编码文件。

注意 2:始终在命令提示符窗口中测试批处理文件以查看错误消息。

【讨论】:

  • 我执行了提到的批处理代码。但它没有给我预期的结果。它只复制了一个文件,但我想复制最新的文件夹,包括带有内容的子文件夹。
  • @Ricky_123 抱歉,如果您不知道自己想要什么或无法描述自己想要什么,我无能为力。带有参数/B /O:D /S 的命令 DIR 以裸格式列出所有非隐藏和非系统文件/目录,按日期递归排序,最旧的文件/目录在顶部,最新的文件/目录在底部。从命令提示符窗口中运行此命令以查看列表并运行dir /?help dir 以获取有关此命令的帮助。如果你想要不同的东西,你需要其他选项,也许还需要 FOR 正文中的其他代码。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-19
相关资源
最近更新 更多