• ベストアンサー

コマンドプロンプトと ワイルドカードの使用

nkf -w --overwrite paperbacks\reckoning\*.txt 上記の、*.txt のようにワイルドカードを使うケースがありますが、パスを""ではさむと、ワイルドカードが効かなくなるのですが、どのように解決したらいいでしょうか。 つまり、下記のようなケースでは、""で挟んだパスの中に*のワイルとカードが含まれていることがおそらく原因で、invalid argumentと表示されます。 nkf -w --overwrite "C:\Documents and Settings\tonbei\デスクトップ\book\*.txt"

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

  • ベストアンサー
  • deadline
  • ベストアンサー率63% (1239/1943)
回答No.2

回答No.1の補足。 XPのコマンドプロンプトに標準で備わっているコマンドは、No.1の2つの括り方のどちらでもきちんと展開されるので、もしかしたら、"nkf.exe"のコマンドパラメータの解釈の仕方に一種のバグがあるのかもしれません。(外部コマンドのパラメータの解釈は、外部コマンドプログラム自体が行う。) もし、No.1の方法で上手くいかない時には、"for"コマンドでワイルドカードを展開して、"nkf.exe"のパラメータにしてみて下さい。 for %f in ( "C:\Documents and Settings\tonbei\デスクトップ\book\*.txt" ) do nkf -w --overwrite %f

tonbeisan
質問者

お礼

ありがとうございました。たいへん懇切丁寧な解説 ひじょうにたすかりました。 for %f in ( "C:\Documents and Settings\tonbei\デスクトップ\book\*.txt" ) do nkf -w --overwrite %f で、うまくいきました。 nkf -w --overwrite "C:\Documents and Settings\tonbei\デスクトップ\book"\*.txt では、うまくいきませでした。 大変勉強になりました。

その他の回答 (2)

  • deadline
  • ベストアンサー率63% (1239/1943)
回答No.3

回答No.2の訂正。 コマンドラインの最後にある%fを""で括ってください。 ("for"コマンドで展開された%fが""で括られていないので) for %f in ( "C:\Documents and Settings\tonbei\デスクトップ\book\*.txt" ) do nkf -w --overwrite %f ↓↓↓ for %f in ( "C:\Documents and Settings\tonbei\デスクトップ\book\*.txt" ) do nkf -w --overwrite "%f"

  • deadline
  • ベストアンサー率63% (1239/1943)
回答No.1

ワイルドカードの手前までの部分を""で括ってください。 nkf -w --overwrite "C:\Documents and Settings\tonbei\デスクトップ\book\*.txt" ↓↓↓ nkf -w --overwrite "C:\Documents and Settings\tonbei\デスクトップ\book"\*.txt

関連するQ&A

  • コマンドプロンプトのコピー関数について

    コマンドプロンプトのcopyのファイル名を記述する部分にファイルのフルパスを使用してみたのですが、「指定されたファイルが見つかりません」となってしまいますが、copyではフルパスは使用できないのでしょうか? エラーになるのは以下のように記述したコマンドです。(a.txtをb.txtにコピー) copy C:\Documents and Settings\a.txt C:\Documents and Settings\b.txt よろしくお願いします。

  • コマンド プロンプト

    C:\Documents and Settings\kizu>replace C:\Documents and Settings\kizu\My Documen ts\Soft.* F:\Soft /a /w 無効なスイッチです - Settings\kizu\My 置き換えるファイルはありません C:\Documents and Settings\kizu>replace C:\Soft\*.* F:\Soft*.* /d/ p/ w 無効なスイッチです - /d 置き換えるファイルはありません どこがおかしいのでしょうか? なんどやってもこうなります( ´;ω;)

  • フルパスの中にワイルドカードを使いたい

    ファイル削除のバッチファイルを作成しているのですが、フルパスの中でワイルドカードを使用したいのですが、可能でしょうか? 例として、 C:\Documents and Settings\user\デスクトップ\abc\test.txt C:\Documents and Settings\user\デスクトップ\edf\test.txt C:\Documents and Settings\user\デスクトップ\gh\test.txt を削除させたいです。 別の場所に同名のテキストファイルがあり、それは消したくないので、「*test.txt」とはしたくないです。 試しに下記のようにワイルドカードを使用してみたところNGでした。 del "C:\Documents and Settings\user\デスクトップ\*\test.txt" よろしくお願いします。

  • コマンドプロンプト copyができません

    こんにちわ。 コマンドプロンプトのcopyコマンドについて質問させていただきます。 下記(1)~(4)処理内容のバッチファイルを作成しました。 デスクトップにある転送データ.txtを(2)、(3)、(4)の各workフォルダへコピーする処理です. (2)、(3)には正常にコピーされますが、なぜか(4)だけコピーされません。 (1)cd C:\Documents and Settings\XXX\デスクトップ (2)copy 転送データ.txt D:\work (3)copy 転送データ.txt C:\work (4)copy 転送データ.txt C:\Documents and Settings\XXX\デスクトップ\work どなたかご教授いただけますでしょうか? 環境 WindowsXP SP3

  • コマンドプロンプトでファイル読み込み

    For文を使って、パラメータファイルから値を読み込みたいのですが、 "C:\Documents and Settings\~"等(パスにスペースが含まれる場合)に置かれた場合、 ファイルを読み込んでくれず困っております。 ()内のファイル指定で、""(ダブルクォーテーション) や'(シングルクォーテーション)で囲むこともしてみましたが、ダメでした。。 どう指定すればよいのかご教授下さい。 よろしくお願いいたします。 【パラメータファイル(tmp.txt)】 ABC=12345 【バッチファイル(test.bat)】 for /F "delims== tokens=1,2" %%A in (D:\tmp.txt) do if %%A==ABC set value_1=%%B echo %value_1% pause

  • コマンドプロンプトで・・・(初心者です)

    プログラミングを始めたんですが、準備段階でつまづいてしまいたまた。 コンパイル時にコンマンドプロンプトを使いますが、本ではコマンドプロンプト起動時に C:\> となっていますが、わたしのパソコンでは C:\Documents and Settings\Takeshi> となってしまいます。(Takeshiは私の名前です) cdコマンドをつかってCドライブ内のディレクトリに移動したいのですが、 C:\Documents and Settings\Takeshi> の後にcdを使っても移動してくれません。 ”指定されたパスが見つかりません”というメッセージが出ます。 というわけで、本の通りにC:\>にしたい(移動したい?)のですが、どおすれば良いのでしょうか? Helpで見てみてもさっぱり意味が分かりません。 よろしくお願いします。

  • delコマンドでデスクトップ上のファイルを消去

    del コマンドで、デスクトップ上のファイルを絶対パス指定で消去したいのですが、できません。 例: del C:\Documents and Settings\user\デスクトップ\samplefile.txt    “デスクトップ上のファイルsamplefile.txtを消去” 上記を打つと“指定されたパスが見つかりません。”と返答があり消去できません。 何かお気付きの点がありましたら教えてください。

  • 【バッチファイル】コマンド上で書いた文字をテキストに表示

    コマンド上で入力した文字を、元々あるテキスト(メモ帳)に 書き出したいのですが、どなたかご存知の方、ご教授願いますm(_ _)m 例)、 ping 192.168.*.***>"C:\Documents and Settings\=====\デスクトップ\%COMPUTERNAME%.txt" ipconfig /all>>"C:\Documents and Settings\=====\デスクトップ\%COMPUTERNAME%.txt" "C:\Documents and Settings\=====\デスクトップ\%COMPUTERNAME%.txt">notepad.exe ↑で作成したテキストに、サービスタグ(仮に、XTZ1234とします)を追記したい ということです。 よろしくお願いいたします。

  • sha1sumコマンドの使い方を教えて下さい。 

    FC6のソース及び SHA1SUM(txt)をwindows機のデスクトップ上の同じフォルダ にダウンロードしました。 CDに焼く前に、sha1sumコマンドでチェックをするため、 C:\Documents and Settings\Taro>cd C:\Documents and Settings\Taro\デスクトップ\ Fedora6 [Enter] C:\Documents and Settings\Taro\デスクトップ\Fedora6>sha1sum -c SHA1SUM.txt [Enter] とすると、 ------------------- 'sha1sum' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。 C:\Documents and Settings\Taro\デスクトップ\Fedora6> ------------------- となってしまいます。 sha1sumコマンドはどのようにして使うのでしょうか? 使うための前処理はどのように行えばよいのでしょうか? 使い方を教えて下さい。 

  • XPでPostgreSQL

    を使っていますが psqlで入って ディレクトリを変更するのに \cd "/Documents and Settings" としても Invalid argument というエラーメッセージが出ます。 PostgreSQLで間に空白があるディレクトリを指定するにはどうしたらいいのでしょうか? また今の作業ディレクトリを表示させるにはどうしたらいいのでしょうか?(Linuxのpwd)