2016-05-09 12 views
1

私はバッチスクリプトといくつかの問題に直面してエコー2つの変数に取り組んでいます。バッチ:エコー2つのパラメータと空白

test.bat 1235 899 
899 
"Calling Two Paramters" 
- `12352` 

今、予想される出力がなければなりません:このために私は、呼び出し

echo %2%

echo "Calling Two Paramters"

echo - %1% %2%

TEST.BATた場合、どのような出力が来るファイルを作成し

1235 899 

+0

あなたは、単一のパラメータとして扱われるように、 '1235 899'をしたいですかあなたが '1235'と' 899'の2つの引数として見たいと思っていますか? – aschipfl

+0

2つの異なる引数 – LivCool

+1

さて、正しい最後の行は 'echo-%〜1%〜2'です。@npocmakaは既に[彼の答え]で指摘されています(http://stackoverflow.com/a/37112843 )引数には '%'が1つだけあり、 '〜'修飾子は周囲のqouotesを取り除きますが、明らかにあなたの質問は彼にとっては十分ではありませんでした。 *引数)... – aschipfl

答えて

0

を助けてくださいあなたのtest.batを次のように変更してください:

echo "Calling Two Paramters" 

echo - %~1 

とこのようにそれを呼び出す:

test.bat "1235 899"

サブルーチンやバッチファイルの引数のみ先頭に%を持っています。

区切り文字を含む引数は、二重引用符で囲む必要があります。

%~1ここではティルダが省略されます。

+0

いいえ、私は2つの異なる引数を持っています。私はそれらの2つを呼び出しスクリプトに渡す必要があります。最初はストリームナンバー、2つ目はバージョンです。 – LivCool

+0

@R。Sha - 次に 'echo%1%2'だけを使うことができます – npocmaka

-1

は次のようにスクリプトの最後の行を変更します。

echo %1 %2% 
+0

これはうまくいくでしょうが、最後の'% 'が空変数の開始として解釈されるハックが原因です。 'echo%1%2'、さらには' echo%〜1%〜2'の方が良いでしょう。 –

0

あなたのエラー:

バッチファイルで引数を使用して、末尾にはパーセント文字はありません。したがって、最初の引数は%1であり、%1%ではありません。

ボーナス先端:

私は、コマンド・インタプリタは、パース(および実行)する前に、すべての行をエコーし​​ないように、バッチファイルの最初の行としてオフ@echoを使用するようにそれら。

例:

@echo off 
echo %2 
echo "Calling Two Paramters" 
echo - %1 %2 

あなたがそれをしたくない場合は、オフ@echoを捨てることができます;)

関連する問題