• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Win2000 バッチファイルについて)

Win2000バッチファイルでのエラーと解決方法

このQ&Aのポイント
  • Win2000の環境でバッチファイルがうまく動作しない現象が発生しています。エラーメッセージとして「FIND:パラメータ書式が間違います」と表示されます。同様の現象は他のバージョンのWindowsでは発生していません。
  • 「^|」の「^」を除去しても問題が解消しないようです。
  • このバッチファイルは、バッチファイルが存在する領域の使用容量を算出するためのものです。一時ファイルの生成は利用せず、Findコマンドのみを使用する前提で作られています。

質問者が選んだベストアンサー

  • ベストアンサー
  • notnot
  • ベストアンサー率47% (4900/10358)
回答No.2

Windows2000のforにはバグがあります。 for /f の括弧の中でコマンドを実行する際に、日本語のバイト数を数え間違えます。 for /F "tokens=3" %%s in ('dir /s/-c ^| find "個のファイル"') do Set s=%%s のように日本語が6文字の場合、 for /F "tokens=3" %%s in ('dir /s/-c ^| find "個のファイル"123456') do Set s=%%s と、後に余分な半角文字を6文字つけてやる。 まあ、現実的には、下記のように一旦ファイルに入れてください。 dir /s/-c | find "個のファイル" > tmpfile for /F "tokens=3" %%s in (tmpfile) do Set s=%%s

qsharp
質問者

お礼

ちょっと調べてみたら確かにバグですね。 下記のコマンドを実行してみました、結果はOKです。 FOR /F "TOKENS=3 DELIMS=" %%J IN ('DIR /S/-C ^| FIND "個のファイル"123456') DO SET NUM1=%%J これよりやっぱ一時ファイルの生成はやり易いですね、助かりました。 ありがとうございます。

その他の回答 (1)

  • Cupper-2
  • ベストアンサー率29% (1342/4565)
回答No.1

自分もよく知りませんが、2003・2008のFINDコマンドの仕様が違うとかありませんか。   find /? とでもして、コマンドの詳細を確認されてはいかがでしょう。 … 自分、サーバーOSは使わないんですよ。

qsharp
質問者

お礼

FINDの仕様が同じです、原因はバグです...全然知りませんでした、ありがとうございます。