質問

私は、渡されたパラメータを使用してファイルを処理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が私を助けることができることを見出したが、それは面倒に見えます。

ですからなどの名前、ドライブ、パスに任意の変数を拡張するための他の方法があります。?

役に立ちましたか?

解決

うん、特別な番号ベースの引数を持つものだけ仕事。しかし、あなたは、バッチファイル内のサブルーチンに渡すことで一つにあなたの変数を変えることができます。例:

@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というの名前の一部)

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top