我的代码能够重命名.txt文件,但无法将pdf定位为使用从.txt文件中提取的相同信息同时重命名。
我试图放
for /f "delims=" %%i in ('dir /a-d/b *.pdf') do (
rename "!fname!" "!nname!.pdf"
在我认为它们可能起作用的不同位置,但是如果它位于.txt文件的另一个/ f“ delims =”块内,则该文件将不运行,并且如果不在该目录中,则它将无法获取相同的名称
setlocal
cd File Location
::Next Targets .txt files, makes variables, modifies the variable, and renames the .txt
for /f "delims=" %%i in ('dir /a-d/b *.txt') do (
set "nname="
set "fname=%%~i"
for /f "usebackq skip=4 delims=" %%f in ("%%~i") do if not defined nname set "nname=%%f"
setlocal enabledelayedexpansion
set "nname=!nname:~12,10!"
rename "!fname!" "!nname!.txt"
)
::I tried to pull the same variables while targeting the .pdf files, but it wouldn't get the variables.
for /f "delims=" %%i in ('dir /a-d/b *.pdf') do (
rename "!fname!" "!nname!.pdf"
)
endlocal
pause
我希望第二个块能够从第一个块中提取相同的变量(文件名),但是它什么也没做。
答案 0 :(得分:0)
好吧,我想出了如何重命名pdf,因为txt不必重命名,而是从中提取信息来重命名pdf
setlocal
cd Directory
for /f "delims=" %%i in ('dir /a-d/b *.txt') do (
set "nname="
set "fname=%%~i"
for /f "usebackq skip=5 delims=" %%f in ("%%~i") do if not defined nname set "nname=%%f"
setlocal enabledelayedexpansion
set "nname=!nname:~12,10!"
set "fname=!fname:~0,-4!"
rename "!fname!.pdf" "!nname!.pdf"
)
endlocal
pause
这将删除变量的结尾并搜索+ .pdf重命名