我的代码可以重命名.txt文件,但不能用从.txt文件中提取的相同信息同时重命名pdf。
我试着把
for /f "delims=" %%i in ('dir /a-d/b *.pdf') do (
rename "!fname!" "!nname!.pdf"
在不同的位置,我认为它们可能工作,但如果它在另一个/f“delims=”块内的.txt文件,它不会运行,如果它在外面,它将不会获得相同的名称。
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
我希望第二个块能够从第一个块中提取相同的变量(文件名),但是它什么也不做。
发布于 2019-07-10 22:42:53
嗯,我想出了如何重命名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重命名。
https://stackoverflow.com/questions/56943328
复制相似问题