«前の日記(2004-05-31) 最新 次の日記(2004-06-02)» 編集

いがいが日記


2004-06-01 [長年日記]

_ 日記のネタ

最近、日記に技術的なこと書いてないな、と反省してたのですが、

#ネタが無いともいう。

今日はおあつらえ向きのネタがあるので書いてみます。

_ [win] 同階層ディレクトリ内の同名ファイルを削除するbatファイル

windowsのバッチファイルはunixコマンドラインに慣れてしまうと貧弱に感じますが、 結構がんばることができるのです。 やりたいことは「同階層ディレクトリ内の同名ファイルを削除したい」。*1 例えば、、、
E:\deltest\hoge1\deltarget.txt
E:\deltest\hoge2\deltarget.txt
E:\deltest\foo\deltarget.txt
の3つをまとめて削除したいのです。 そこでコマンドラインから以下のように打つと、、、
E:\>del e:\deltest\*\deltarget.txt
ファイル名、ディレクトリ名、またはボリューム ラベルの構文が間違っています。
うーん、ディレクトリにはワイルドカードが使えないようです。 しかし、調べたところこれを可能にするbatファイルがありました。
@echo off
for /d %%a in (E:\deltest\*) do del "%%a\deltarget.txt"
ブラボーです。 ファイル名にワイルドカードを使うこともできます。 delだと間違った時にあぶないのでtypeとかdirとか無害なコマンドでテストしてから使うといいですね。 ちなみに、ディレクトリを再帰的に潜っていっての削除はしません。 E:\deltest\ の階層にあるディレクトリだけです。

*1 ちなみになんでこんなことやりたかったかというと、Namazuさんがindex作る時にNMZ.lock2を残していくことがあったので、それを消したかったのです。

本日のツッコミ(全2件) [ツッコミを入れる]
_ amano (2004-06-01 23:22)

Win XP あたりだと WSH でやるってのもお手軽かも。<br>簡単な JScript を書けばできそう。

_ いが (2004-06-02 11:57)

はい、バッチファイルでダメならWSHかな、と思ったんですが、できたのでそこまで踏み込んでないです。<br>WSHもちょっと調べてみよっと。


«前の日記(2004-05-31) 最新 次の日記(2004-06-02)» 編集