- - PR -
XindiceはXPを未サポート?
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2002-08-19 18:27
”Xindice:無料で使えるXMLデータベース”で勉強させて頂いているのですが、
xpathを使った検索 例えば、xindiceadmin xpath -c /db/sampledb -q "/problem[@status='open']" 実行時に C:\Xindice>xindiceadmin xpath -c /db/sampledb -q "/problem[@status='open']" ='open']""=="" の使い方が誤っています。 とエラーが出ます。 OSはWindowsXPProfessionalなのですが、XPでは動かないのでしょうか? ちなみに、Windows2000のマシンで試した所、OKでした。 以上、よろしくお願いします。 |
|
投稿日時: 2003-09-26 11:41
私も同様な現象に遭遇しました.
そこでxindiceadmin.batというバッチファイルを調べてみたところ、 パラメータをCLという変数に取り込もうとしている処理があり、 set CL= :LOOP if "%1"=="" goto DONE set CL=%CL% %1 echo %CL% shift goto LOOP ONE CLをechoで出力させてみたところ xpath -c /db/sampledb -q "/problem[@status 'open']" となってしまい、イコールがスペースに置き換わっていました. NTや2000ではダブルコーテーションで括っておけばイコールは出力されたのですが、XPだと調子悪いです. というわけでxindiceの問題というよりはXPにおけるバッチファイル上の問題といった感じがします. というわけで、どなたかXPのバッチファイル内でパラメータで使用しているイコール(=)を変数に正しく取り込む方法をご存知の方いらっしゃいませんか? |
|
投稿日時: 2003-09-26 23:17
if "%1"=="" goto :EOF
逆転比較すると通りました if ""=="%1" goto :EOF 残り全部のパラメータをコピーするなら set CL=%* echo %CL% もできました。 Windows のコマンドプロンプトは任意文字列の引数は困難度が高いです ワンライナーは書きにくい、 ファイル名引数しか考えていないような作りです。 コマンドプロンプトで詰まったら、最新Cygwin BASH も試しましょう (正しい日本語設定は?ですが) [ メッセージ編集済み 編集者: MMX 編集日時 2003-09-28 21:37 ] |
|
投稿日時: 2003-09-29 10:14
MMXさん、
ご回答ありがとうございます. ご教授いただいたとおり逆転比較 if ""=="%1" goto DONE をするとうまく動きました. また、 set CL=%* でも動きました. ところで、 if "%1"=="" goto DONE と if ""=="%1" goto DONE との間にはどのような違いがあるか、 もしよろしければ教えていただけませんか? ちなみに、 if "%~1"=="" goto DONE と、1の前にチルダを入れても動きました. とりあえず動いてすっきりしました.ありがとうございます. |
|
投稿日時: 2003-09-29 14:18
ヘルプとサポート 「バッチ パラメータを使用する」
ms-its:C:\WINDOWS\Help\ntcmds.chm::/percent.htm の最終段落には、環境変数とバッチパラメータは違うと書いてある。 この「ビミョー」さナドなどが原因では? コマンドプロンプトは部分的には新人類的「式言語」ぽく便利なヶ所 もあるのだが、全体のバランスは練れていないよーな |
1