让我们首先解释一下我想做什么。
我有一个包含相机照片的文件夹。它们的名字如下: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;
}
}
答案 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"
)