2017-12-16 8 views
0

こんにちは、バッチファイルを使用してキューからメッセージをクリアしようとしています。私はファイルのキューのリストを持っています。バッチプログラムでファイルを読み込んでキューをクリアすることができました。ファイルにクリアする複数のキューが含まれている場合、それらを配列に格納できますが、配列要素をMQコマンドに渡すことは機能しません。お知らせ下さい。新しいバッチスクリプトに、その方法バッチファイルのループ

コード:

for /f %%G in (file.txt) do (
    set /a count+=1 
    set fileName[!count!]=%%~G 
    call set n=!count! 
) 
rem echo !fileName[%count%]! 

for /L %%i in (1,1,%n%) do (
echo !fileName[%%i]! 
echo display qlocal(!fileName[%%i]!) | runmqsc %1 
) 

私はコード内のSETLOCAL enabledelayedexpansionのENABLEEXTENSIONSを持ち、エコーの文が正常に動作する上記の作品で、それは、配列のすべての内容が表示されています。それはqlocalを表示するために渡されていません。

投稿のフォーマットが適切でない場合は、謝罪してください。

+0

あなたは 'Call'を使う必要はなく、' Set "n =!count!" 'だけでいいです。つまり、時間を無駄にする必要はなく、 '(1,1、%count%)'を直接使用することができます。補足として、特に 'Call'sと' For's_を使うときは、入力引数を失うことはありません(この場合は '%1')、注意してください。それらの引数がスクリプトの早い段階で使用されていない場合は、コードの早い段階で変数に引数を割り当てる方が安全です。 – Compo

答えて

1

使用

echo display qlocal(!fileName[%%i]!^) | runmqsc %1 

^は「エスケープ」cmdは標準の文字として、それを見て、doブロックを閉じfor /L ... do ((とペアリングしないように)キャレット。

関連する問題