2017-03-11 13 views
-1

の1つの文字列から複数のコマンドを排除する何らかの理由で、バッチファイルの1つの文字列から複数のコマンドを実行する必要があります。私はこのコードを試してみた:バッチファイル

@echo off 
set multipleCommands=echo command1 ^& echo command2 ^& echo command3 
echo. 
%multipleCommands% 
pause 

をしかし、それは私にこの結果を与える:

command1 & echo command2 & echo command3 

を私はまた、別のコードを試してみました:

@echo off 
set multipleCommands=echo command1 & echo command2 & echo command3 
echo. 
%multipleCommands% 
pause 

をしかし、それは私にこの結果を与える(なぜならmultipleCommands=echo command1のみ):

command2 
command3 

command1 

この問題を解決するには?

+0

これは、ここに動作します: '「multipleCommandsは=エコーのCommand1&エコーcommand2の&エコーCOMMAND3」' – Aacini

+0

あなたの最初のコードが結果を与えることができない設定しますあなたは投稿しました。代わりに、3つの 'echo'コマンドを順番に実行します。 3つのコマンドを実際に実行し、 'echo'コマンドを実行しない場合は、単に文字列定義から' echo'を削除してください。 – dbenham

答えて

1

Firsly理由はありません。&は、新しい行で別のコマンドと同じように動作します。

@Echo Off 
Echo= 
command1 
command2 
command3 
Pause 

は、しかし、あなたの問題は、あなたがsomheowエコーを使用してトランスフィックスしているということのようです!

@Echo Off 
Set "multipleCommands=command1 & command2 & command3" 
Echo= 
%multipleCommands% 
Pause 

これらのコマンドは、前のコマンドが閉じても開くようにする必要があります。あなたがそれらを使用する必要があるだろう同時に実行したい場合:

Set "multipleCommands=start command1 & start command2 & start command3"