批量复制,重命名并覆盖从一个目录到另一个目录的最新文件

时间:2017-03-15 09:35:54

标签: batch-file

我找到了一种方法,可以使用Windows中的批处理文件将目录中的最新文件复制到另一个目录。但是,我想帮助您找出如何重命名复制的文件并覆盖旧文件。

@echo off
set source="D:\Backup"
set target="D:\tmp"

FOR /F "delims=" %%I IN ('DIR %source%\*.csv /A:-D /O:-D /B') DO COPY %source%\"%%I" %target% & echo %%I & GOTO :END
:END

我们的想法是源备份文件夹包含添加了日期和时间的增量备份。我希望结果有一个常量名称,比如raw.csv,以便我可以在Excel中使用它。

谢谢!

1 个答案:

答案 0 :(得分:2)

git pull --rebase origin \"$(git rev-parse --abbrev-ref HEAD)\"

如评论所述,只需在复制操作中包含目标名称即可。

我也改变了你的变量定义。除非有充分的理由这样做,否则在使用路径时,最好将引号包含在变量值中(以后更难以使用它们)。只需引用赋值(以防止特殊字符或最终空格出现问题),稍后在需要时引用文件系统引用。

@echo off
    setlocal enableextensions disabledelayedexpansion 

    set "source=D:\Backup"
    set "target=D:\tmp"

    FOR /F "delims=" %%I IN ('
        DIR "%source%\*.csv" /A-D /O-D /B
    ') DO COPY "%source%\%%I" "%target%\raw.csv" & echo %%I & GOTO :END

:END