Я использую пакет dos, который обрабатывает файл, используя переданный параметр:
process.bat "D:\PROJECT\TEST FILES\test.pdf" 72
process.bat:
gswin32c -r%2 -sDEVICE=jpeg -sOutputFile="%~n1-%%d.jpg" -- "%~1"
Мы видим, что параметр расширяется до имени файла в пакете: %~n1
.
Однако меня попросили переписать пакет для чтения параметров из текстового файла:
params.txt
1 D:\PROJECT\TEST FILES\test.pdf
2 72
Итак, я изменил process.bat :
for /f "tokens=1,*" %%A in ('type ..\params.txt') do set P%%A=%%B
gswin32c -r%P1% -sDEVICE=jpeg -sOutputFile="%~nP2%-%%d.jpg" -- "%~1"
Но% ~ nP2% не работает.
Я обнаружил, что for /f "tokens=*" %%A in (%P1%) do %%~dA
может помочь мне, но это выглядит громоздко.
Так есть ли другой способ расширить произвольную переменную до имени, диска, пути и т. Д .?