1
sample.bat a,b,c,d yes

%2 をエコーし​​て yes を出力しようとしていますが、結果は b と表示されます。コンマもエスケープ文字か何かとしてカウントされると思います。2 番目のパラメーターとして yes を出力するにはどうすればよいですか?

4

2 に答える 2

2

%*代わりに使用して、独自のルールで解析できます。

for /F "tokens=1,2 delims= " %%A in ("%*") DO (
  echo first=%%A
  echo second=%%B
)
于 2012-12-12T12:43:03.790 に答える
2

パラメータ区切り文字は次のとおりです。, ; = <space> <tab> <0xFF>

パラメータ区切り文字は変更できず、エスケープもできません。

パラメータ内に区切り文字を含める唯一の方法は、パラメータを引用符で囲むことです。

sample.bat "a,b,c,d" yes

~修飾子を使用して、パラメーターから引用符を取り除くことができます

echo %~1
于 2012-12-12T07:52:44.497 に答える