Я пытаюсь написать пакетный файл, который будет искать в каталоге для расширений файлов * .pdf, а затем преобразовывать их в расширения * .tif с файлами ImageMagic. Я могу сделать это, если в каталоге есть один файл PDF, но если их несколько, я не могу понять, как их преобразовать с правильным именем. Проблема заключается в том, что в цикле, переменная fName
не представляется быть назначен, но вне цикла, это имеет значение ...Значение переменной пакетного файла не доступно до конца цикла
Вот код, который работает для одного файла PDF и работает на нескольких, но имя containts «.pdf»:
echo off
set dSource=C:\Users\Nick\Documents\Research\Journal Article\Figures
set fType=*.pdf
for /f "delims=" %%f in ('dir /a-d /b "%dSource%\%fType%"') do (
rem remove extension from file name, set value to variable:
set fName=%%~nf
rem call ImageMagic to convert to TIFF
rem convert -compose copy -density 300 -alpha off "%%f" "%%f.tif"
rem above line (when uncommented) lets multiple TIFF images to be produced, but they are *.pdf.tif
rem convert -compose copy -density 300 -alpha off "%fName%.pdf" "%fName%.tif"
rem above line (when uncommented) does not work because fName has no value...
rem variable value does not appear to be assigned within loop:
echo.file name within loop: %fName%
)
echo.file name after loop: %fName%
rem outside loop, variable value is now available...
rem convert -compose copy -density 300 -alpha off "%fName%.pdf" "%fName%.tif"
rem above line of code works, but only for the last file name with *.pdf discovered in directory
pause
Это утверждение «конвертировать» в ваш цикл for? – kenny
Эй, @kenny, да, я бы хотел, чтобы конвертировать оператор в цикле для преобразования нескольких фигур. – user217558