使用批处理文件有条件地重命名文件夹中的文件

时间:2017-09-12 11:37:09

标签: batch-file rename

让我们首先解释一下我想做什么。

我有一个包含相机照片的文件夹。它们的名字如下:DSC_0030.jpg DSC_0030(2).jpg DSC_0031.jpg DSC_0030(2).jpg等。

当我试图查看它们时,这非常烦人,因为带有(2)的那些是来自另一张存储卡并在以后拍摄。

按日期排序似乎也不起作用。这些照片不是我自己的相机,所以我无法将它们重新导入到不同的文件夹中。

所以我的想法是这样的批处理文件,但我不知道语法。

foreach(file in "folderpath") {
    if (instr(file.name, "(2)")) {
        file.name = "2 " + file.name;
    } else {
        file.name = "1 " + file.name;
    }
}

1 个答案:

答案 0 :(得分:0)

未经测试

@echo off
::: set the correct path :::
set "photos=c:\photos"

setlocal enableDelayedExpansion
for %%a in ("%photos%\*(?).???") do (
    set "filename=%%~na"
    set "wb=!filename:~0,-3!"
    set "number=!filename:~-2,-1!"

    rem :::: remove echo word if file name looks ok :::
    echo ren "%%~fa" "!number!-!wb!%%~xa"

)