web-dev-qa-db-ja.com

パラメータ内のCMDバッチエスケープ環境変数

環境変数aparamを使用してバッチファイルを作成する必要があります。

c:\myapp.exe -f "%APP_HOME%\file.conf" 

文字列%APP_HOME%を値ではなく、paramとして正確に渡す必要があります。どのようにできるのか?

つまり、バッチランタイムで変数を削除したくないのですが、この環境変数を変更した場合、アプリケーションで変数を変更したくないので、アプリケーションでパラメーター化されたパスとして使用させたいと思います。

4
Tobia

文字列 "%APP_HOME%をparamとして正確に渡す必要があります

  1. %^%に置き換えます
  2. "sを削除します

    c:\ myapp.exe -f ^%APP_HOME ^%\ file.conf

test.cmd:

@echo %1 %2 %3

出力:

F:\test>test c:\myapp.exe -f ^%APP_HOME^%\file.conf
c:\myapp.exe -f %APP_HOME%\file.conf
F:\test>

参考文献

4
DavidPostill