2017-09-07 18 views
1

バッチファイルでは、ハードコードされたdB名をファイルから読み込んでいるパラメータに置き換えました。ローカルからバッチファイルを実行すると、dB名が正しく置換されているのがわかります。しかし、WLM上で同じスクリプトを実行しようとすると、そのジョブ自体は、基盤となるパッケージ自体をトリガーすることなく中止されてしまいます。ファイルから読み込むための実行時に/ set packageに入力を与える

コード:

for /f "delims== tokens=2" %%G in (file_name.txt) do set %%dB_name=%%H 

私はバッチファイルでDTEXECを使用していますが、パラメータがのfile_name.txt使用/set \"package[variable]";dB_name

答えて

0

に渡される:

ABC=DEF 
GHI=JKI 

をとバッチ・ラインでは、次の変数が設定されています。

%dB_name=%H 

私はあなたが実際に望んでいないと思う。通常は、変数名のにパーセント記号を入れたくありません。

また、トークン#2を指定している間は、これが指定する唯一のトークンなので、の代わりに%%Gを指定する必要があります。

おそらくこのような何かがよりよく機能するであろう:

for /f "delims== tokens=2" %%G in (file_name.txt) do set dB_name=%%G 

また、私はもはや理由を思い出すことはできませんが、私は最後のdelimsを入れての大ファンです:任意の点で

for /f "tokens=2 delims==" %%G in (file_name.txt) do set dB_name=%%G 

、同じ入力ファイルを使用しているときの結果は次のようになります。

dB_name=JKI 

あなたが達成しようとしているもののほうがずっと似ています。

関連する問題