我正在嘗試編寫一個批處理文件,該文件將通過目錄搜索* .pdf文件擴展名,然後將它們轉換爲帶有ImageMagic的* .tif文件擴展名。如果目錄中有一個PDF文件,我能夠做到這一點,但如果有多個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