2017-12-15 3 views
0

別のバッチファイルから変数を使用してWindowsのバッチファイルを起動する方法以下:%SOME_PATH%\pathToConfig\some.properties私が試してみました

set SOME_PATH="C:\some_path" 
start "some program" %SOME_PATH%\pathToScript\anotherBatch.bat %SOME_PATH%\pathToConfig\some.properties 

私の目的は、引数として設定ファイルへのパスを取る"anotherBatch.bat"を開始することです

不幸にも、新しいコマンドプロンプトで、ファイル名の構文が正しくないというエラーが発生しました。

上記の開始コマンドの正しい構文は何ですか?

+1

バッチを実行する4つの方法を説明する[現在のディレクトリから1レベル上のバッチファイルを呼び出す方法](https://stackoverflow.com/a/24725044/3074564)の回答をお勧めします。バッチファイル内のファイル。引数文字列にスペースまたは ''(){]^=;! '+、 '〜<|>' 'の文字のいずれかが含まれている場合は、各引数文字列を二重引用符で囲む必要があります。環境変数 'SOME_PATH'にパスを割り当てる際の最初の二重引用符も間違った位置にあります。[環境変数をスペースで設定するには?](https://stackoverflow.com/a/34402887/3074564) – Mofi

答えて

2

CallStartの代わりにバッチファイルを指定する必要があります。 anotherBatch.batが引用符で囲まれていない引数として引用された引数と%~1よう%1または"%~1"を使用します

Set "SOME_PATH=C:\some_path" 
Call "%SOME_PATH%\pathToScript\anotherBatch.bat" "%SOME_PATH%\pathToConfig\some.properties" 

+0

問題はanotherBactch.batはコールをブロックしているので、別のcmdウィンドウでバッチファイルを実行するためにstartコマンドを使用しています。別のBactch.batを非同期で呼び出すことができますか? – MvKuegelgen

+0

'.bat'拡張子を持つファイルの中の一連のテキスト文字列が、それに先行する' call'コマンドを 'ブロックする 'とあなたが信じる方法を正しく説明する必要があります。 – Compo

関連する問題