我正在将一堆以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
是与我当前使用的这些文件的格式不兼容。
我做错了什么?声明变量时任何地方都没有空格。
答案1
如果原始文件名后面都包含空格TB-Practice
,则拆分起来会更容易。
在命令行上:
@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
答案2
愚蠢的我意识到后我发帖说批处理不会删除该空格TB-Practice
,所以才会剩下一个空格。已解决。