批量重命名在变量之前放置一个空格


0

我正在重命名一堆以。开头的文件 TB-Practice 首先 P-

到目前为止,我有这批

pushd %~dp0
for %%i in ("TB-Practice*.pdf") do (set fname=%%i) & call :rename
goto :eof
:rename
::Cuts off 1st eleven chars, then appends prefix
::P- is put in front of the file name
ren "%fname%" "P-%fname:~11%"
goto :eof

不幸的是,而不是结束 P-Filename 我结束了 P- Filename 这与我用于这些文件的当前格式不兼容。

我究竟做错了什么?在声明变量时,没有任何空间。

Answers:


1

如果原始文件名都包含空格尾随 TB-Practice,拆分它们要容易得多。

在cmd行:

@for %A in ("TB-Practice *.pdf") do @for /f "tokens=1*" %B in ("%A") do @echo Ren "%A" "P-%C"

或者在批处理文件中:

pushd %~dp0
for %%A in ("TB-Practice *.pdf") do for /f "tokens=1*" %%B in ("%%A") do Ren "%%A" "P-%%C" 
popd

0

愚蠢的我意识到了 我发布批处理后没有删除该空格 TB-Practice 这就是剩下空间的原因。解决了。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.