1

渡されたパラメーターを使用してファイルを処理する dos バッチを使用しています。

process.bat "D:\PROJECT\TEST FILES\test.pdf" 72

プロセス.バット:

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が、それは面倒に見えます.

任意の変数を名前、ドライブ、パスなどに展開する他の方法はありますか?

4

1 に答える 1

2

ええ、それらは特別な数値ベースの引数でのみ機能します。ただし、変数をバッチ ファイルのサブルーチンに渡すことで、変数を 1 つに変えることができます。例:

@echo off
set P1=D:\PROJECT\TEST FILES\test.pdf
call :Split %P1%
echo %FNAME%
exit /b 0

:Split
set FNAME=%~n1
exit /b 0

...「TEST」を表示 (test.pdf の名前部分)

于 2010-02-10T16:32:58.023 に答える