次のコードを使用して、bat ファイルから exe を起動しようとしています
start "" "abc.exe" %1 %2 %3 %4
最初の引数(%1)は暗号化された認証 ID です。この ID には末尾に 2 つの=記号が含まれます
私の問題は、%1引数を渡すたびに、これらの 2 つの=署名がバット ファイルによって削除されることです。
その結果、期待どおりにアプリケーションを実行できません。
この問題を解決する方法を教えてください
--ランガナ
次のコードを使用して、bat ファイルから exe を起動しようとしています
start "" "abc.exe" %1 %2 %3 %4
最初の引数(%1)は暗号化された認証 ID です。この ID には末尾に 2 つの=記号が含まれます
私の問題は、%1引数を渡すたびに、これらの 2 つの=署名がバット ファイルによって削除されることです。
その結果、期待どおりにアプリケーションを実行できません。
この問題を解決する方法を教えてください
--ランガナ
exe プログラムを起動すると、すべてのコマンドを解析できるはずです。
したがって、パラメータに期待されるデータが実際に含まれていることを確認する必要があります。
ハードコードされたパラメーターで試すことができます。
start "" "abc.exe" a$deD343aD5== param2 param3 param4
Batch は、次の文字をパラメーター区切り文字として扱います: <space> <tab> , ; = <0xFF>
. <0xFF>
は非改行スペースであることに注意してください。
パラメータ値の一部として区切り文字を含める唯一の方法は、パラメータを二重引用符で囲むことです。
値を引用符で囲むのは、呼び出し元次第です。したがって、最初のパラメーターが a$deD343aD5== である必要がある場合、バッチ スクリプトは次のように呼び出す必要があります。
scriptName "a$deD343ad5==" param2 param3 param4
引用符を exe に渡したくない場合は~
、バッチ スクリプト内で修飾子を使用して、囲んでいる引用符を削除できます。< > & |
ただし、 のような特殊文字は、引用またはエスケープされていないと問題が発生するため、注意が必要です。
::This will preserve any enclosing quotes around each parameter
start "" "abc.exe" %1 %2 %3 %4
::This will strip any enclosing quotes around each parameter (if they exist)
start "" "abc.exe" %~1 %~2 %~3 %~4