我有一堆名称如下的Pdf文件:
Malcolm Gaskill - History.pdf
Manfred B. Steger - Globalization; A Very Short Introduction.pdf
我想重命名它们以摆脱第一个连字符之前的所有内容,所以它们最终会像:
History.pdf
Globalization; A Very Short Introduction.pdf
我该怎么做呢? 感谢
答案 0 :(得分:0)
@ECHO OFF
SETLOCAL
SET "sourcedir=U:\sourcedir"
FOR /f "delims=" %%a IN (
'dir /b /a-d "%sourcedir%\*-*.pdf" '
) DO (
FOR /f "tokens=1*delims=-" %%b IN ("%%a") DO (
FOR /f "tokens=*" %%d IN ("%%c") DO (
ECHO(REN "%sourcedir%\%%~a" "%%~d"
)
)
)
GOTO :EOF
您需要更改sourcedir
的设置以适合您的具体情况。
为了测试目的,所需的REN命令仅为ECHO
。 在您确认命令正确后,将ECHO(REN
更改为REN
以实际重命名文件。
对于初学者来说不是特别容易,因为文件名可能包含; ,这是一个分隔符,如 Space
首先,执行dir /b
以获取所有必需的文件名,这些文件名使用%%a
而不是分隔符应用于for /f
。
接下来,将-
标记为%%b
和%%c
,然后使用%%c
将所需文件名应用到tokens=*
,从%%d
中移除主要分隔符。
然后使用mix-and-match构建所需的重命名命令。