[前の記事]« ファイルサイズが0かどうかの取得
[次の記事][XP]MS-DOS起動FDの作り方 »

関連オンラインソフト配布サイト:
Vector>ダウンロード(top) |>MS-DOSまたは汎用 | >WindowsVista/XP/2000/NT

▲カテゴリー「バッチファイルの起動、引数の取得」索引へ

[XP]バッチファイルのパラメータのイコール(=)が消える

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でもともとのスクリプトが動かないのかは不明ですが、原因が判明したらレス入れさせていただきます.
 
 


カテゴリー「バッチファイルの起動、引数の取得」索引へ

 

カテゴリー一覧

FPCU/FPCDIY QUICK LINK online
この上の各ジャンル名をクリックすると、下のウィンドウが切り替わります▼


=リンク集のインデックスはこちら=

資料書籍

About

2003年09月26日 13:52に投稿されたエントリーのページです。

ひとつ前の投稿は「ファイルサイズが0かどうかの取得」です。

次の投稿は「[XP]MS-DOS起動FDの作り方」です。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。

This site is powered by Six Apart
Movable Type 3.33-ja
このブログについて | 運営:有限会社メディアポート