【问题标题】:Rename files with batch script if exist without overwriting如果存在而不覆盖,则使用批处理脚本重命名文件
【发布时间】:2017-11-03 10:48:43
【问题描述】:

我正在将文件移动到同名的新地图中。当名称相同并覆盖时会出现问题。如果可能的话,我想在文件末尾添加 01、02、03.. 或附加日期。但我必须保持扩展原样。

所以我想将 123.pdf 更改为 123_date.pdf 或 12301.pdf 而不是 123.pdf01。到目前为止,我有第一部分覆盖文件:

@echo off
pushd G:\Purchase
for %%a in (*.*) do (
    md "%%~na" 2>nul
    move "%%a" "%%~na"
)
popd

我有:set myTimeStamp = _%date:~12,2%%date:~7,2%%date:~4,2%_%time:~0,2%%time:~3,2%

【问题讨论】:

  • 什么情况下会覆盖文件?您似乎只遍历 G:\Purchase 文件夹的根目录。您处理的所有源文件都将具有不同的名称,因为一个文件夹中不能有两个同名的文件。
  • 除了myTimeStamp 从未设置过,因为= 前后都有空格,你还需要这个值做什么?问题的其他地方没有提到它......无论如何,%%~xa 拥有纯扩展名(.pdf)。并注意如果文件没有扩展名,则无法创建目录...

标签: batch-file cmd rename overwrite


【解决方案1】:

尝试将命令ren 与 if 存在循环一起使用

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-09-18
    • 2010-09-20
    • 2015-02-02
    • 1970-01-01
    • 1970-01-01
    • 2015-11-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多