Мой код может переименовывать файл .txt, но не может одновременно переименовать файл pdf с той же информацией, извлеченной из файла .txt.
Я пытался поместить
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
Я ожидал, что второй блок сможет извлечь те же переменные (имена файлов) из первого блока, но он просто ничего не делает.