Пакетный скрипт Windows для переименования PDF-файлов с помощью первой строки (возможен цикл)?

#batch-file #pdf #scripting #rename #pdftotext

Вопрос:

Можно ли зациклить это, чтобы переименовать все PDF-файлы в папке с помощью этого кода? Я не очень хорошо разбираюсь в пакетных сценариях Windows, по крайней мере, с точки зрения циклов и настроек переменных.

 @echo off
pdftotext "XYZ.pdf"
rem set /p title=< "XYZ.txt":
set /p title=< "XYZ.txt" 
ren "XYZ.pdf" %title%.pdf
pause
 

Ответ №1:

Вы захотите записать вывод DIR команды с FOR /F помощью команды. Это необходимо, поскольку стандартная FOR команда потенциально может попытаться обработать файл, который уже был переименован.

Это непроверено, так как у меня нет программного обеспечения, которое вы используете для преобразования PDF-файлов.

 @echo off

FOR /F "delims=" %%G IN ('dir /a-d /b *.pdf') DO (
    pdftotext "%%~G"
    set /p title=<"%%~nG.txt"
    setlocal enabledelayedexpansion
    ren "%%~G" "!title!.pdf"
    endlocal
)