637) XP上でバッチファイルのパラメータのイコール(=)が消える トリンプ 2003/09/26(金) 11:19 |
|
xindiceadmin.batというバッチファイルを以下のパラメータで動かしたところ、、、、 xindiceadmin xpath -c /db/sampledb -q "/problem[@status='open']" =が消えてしまい、コマンドがうまく実行できませんでした. xindiceadmin.bat の中で以下の処理でもってパラメータを CLという変数に取り込もうとしているのですが、 set CL= :LOOP if "%1"=="" goto DONE set CL=%CL% %1 echo %CL% shift goto LOOP :DONE CLが xpath -c /db/sampledb -q "/problem[@status 'open']" となってしまい、イコールがスペースに置き換わってしまいます. NTや2000ではダブルコーテーションで括っておけばイコールは出力されたのですが. 回避方法をご存知の方、お返事お待ちしております. |
|
639) Re:XP上でバッチファイルのパラメータのイコール(=)が消える ふぇむ 2003/09/27(土) 09:26 |
|
>xindiceadmin.batというバッチファイルを以下のパラメータで動かしたところ、、、、 > xindiceadmin xpath -c /db/sampledb -q "/problem[@status='open']" >=が消えてしまい、コマンドがうまく実行できませんでした. 引数すべてを一つの変数にセットしようとしています? それだったら、 set CL=%* だけでいいと思います。 また、お書きになったようなスクリプトだと、引数が "" でくくられていると >if "%1"=="" goto DONE がおかしくなると思うので、少なくともここは if "%~1"=="" goto DONE というように引数から "" を取り除いたものをベースに扱うほうがいいと思います。 なお、私の XPprofessional では、上のどちらでもちゃんと引数すべて取得できました。 = は消えませんでしたよ。 |
|
645) Re2:XP上でバッチファイルのパラメータのイコール(=)が消える トリンプ 2003/09/29(月) 09:57 |
|
ふぇむさん、 ご回答ありがとうございます. ご指摘のとおり引数すべてをひとつの変数に入れようとしていました. 教えていただいた set CL=%* でばっちり動きました.ありがとうございます. しかし何で私のXPでもともとのスクリプトが動かないのかは不明ですが、原因が判明したらレス入れさせていただきます. |