【问题标题】:Windows script for copying modified files用于复制修改文件的 Windows 脚本
【发布时间】:2015-11-04 12:10:17
【问题描述】:

我尝试编写一个脚本,将修改后的文件从我的开发环境复制到桌面文件夹,但它复制了所有文件,而不仅仅是修改后的文件。这是脚本:

set codeFolder=C:\Dev\tsg-bto-apps-lt-pc-trunk

FOR /F "TOKENS=1 eol=/ DELIMS=/ " %%A IN ('DATE/T') DO SET dayOfWeek=%%A
FOR /F "TOKENS=1,2 eol=/ DELIMS=/ " %%A IN ('DATE/T') DO SET dd=%%B
FOR /F "TOKENS=1,2,3 eol=/ DELIMS=/ " %%A IN ('DATE/T') DO SET mm=%%C
FOR /F "TOKENS=1,2,3,4 eol=/ DELIMS=/ " %%A IN ('DATE/T') DO SET yyyy=%%D

SET today=%dd%-%mm%-%yyyy%

Xcopy /Y /D:%today% /I %codeFolder%\bin C:\Users\sheaffer\Desktop\testFolder  

方法如下:

  1. 获取今天的日期(我使用了以下链接第二个答案中出现的方法:Windows batch: formatted date into variable)。

  2. 使用带有 /D 标志的 Xcopy(以下链接中有一个示例:http://www.windows-commandline.com/xcopy-command-syntax-examples/

我看不出我做错了什么。结果是我的 bin 文件夹中的所有文件都被复制了,而不仅仅是今天修改过的文件。当我运行我的脚本时,生成的命令是:

Xcopy /Y /D:04-11-15 /I C:\Dev\tsg-bto-apps-lt-pc-trunk\bin C:\Users\sheaffer\Desktop\testFolder

请帮助我理解我的错误。谢谢。

【问题讨论】:

  • 如果你不坚持使用xcopy,我推荐使用robocopy。
  • @Filburt 谢谢。我接受了您的建议并使用 robocopy 重写了脚本。它可以工作,而且新脚本更简单,因为我可以使用/maxage:1 并避免字符串/日期操作。我仍然很好奇为什么我发布的脚本不起作用。

标签: windows file copy


【解决方案1】:

xcopy 的帮助说 /D 日期格式是 m-d-y 并且您的日期是 d-m-y 格式。您说的是复制所有在 2015 年 4 月 11 日或之后更改的文件。 robocopy 也比 xcopy 好。很长的路径名会导致 xcopy 出错

【讨论】:

    【解决方案2】:

    我接受了 Filburt 的建议,并使用了 robocopy 而不是 xcopy,它确实有效。新脚本更简单,因为我可以使用 /maxage:1 并避免字符串/日期操作。

    set codeFolder=C:\Dev\tsg-bto-apps-lt-pc-trunk
    
    robocopy %codeFolder%\bin C:\Users\sheaffer\Desktop\testFolder /MAXAGE:1
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-03-22
      • 2018-09-02
      • 2017-03-19
      • 2019-06-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多