0

次のコードを使用して、bat ファイルから exe を起動しようとしています

start "" "abc.exe" %1 %2 %3 %4

最初の引数(%1)は暗号化された認証 ID です。この ID には末尾に 2 つの=記号が含まれます

私の問題は、%1引数を渡すたびに、これらの 2 つの=署名がバット ファイルによって削除されることです。

その結果、期待どおりにアプリケーションを実行できません。

この問題を解決する方法を教えてください

--ランガナ

4

2 に答える 2

0

exe プログラムを起動すると、すべてのコマンドを解析できるはずです。

したがって、パラメータに期待されるデータが実際に含まれていることを確認する必要があります。

ハードコードされたパラメーターで試すことができます。

start "" "abc.exe" a$deD343aD5== param2 param3 param4
于 2012-06-13T19:43:31.620 に答える
0

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
于 2012-06-13T21:32:25.573 に答える