多くの場合Batファイルに組んで「決まったフォルダ」を削除するときが多いです。
コマンドライン直は自殺行為です。さっきもルートをから削除しようとしました。
実験はなにもないフォルダをまず作ります
d:\ai
次に、このフォルダに一度に深くフォルダを作ります
cmdのmkdirの得意とするところです
mkdir d:\ai\ueo\kaki\kukeko
このkakiくらいのフォルダでやりましょう。
Notepadに貼り付けて起きます
カレントディレクトリのクリップ
echo %cd% | clip
おとなしめ
del /f /s \* && rd /s \
鬼
やり方(まだおとなしめ)
ターゲット
今回はDドライブのd:\hoge\tgfolder\ database
が削除したいフォルダ
手順
- cmd.exeをできれば管理者権限で開く cmd ctrl+shift+enter
- 削除したいフォルダを開く `cd /d d:\hoge\tgfolder\database`
- カレントディレクトリを取得 `echo %cd% | clip`
- メモ帳に貼り付けている下記の文字列を加工する(おとなしめの方)
- `del /F /S d:\hoge\tgfolder\database\* && rd /s d:\hoge\tgfolder\database\`
このようにコピーしたディレクトリの文字列を加工する。 -
オプションスィッチはフォルダの前につける
-
Delステートメントにはワイルドカードをつける
- Clipから貼り付けてパス名にダブルクォーテーションがついているときは中に入れる
良い例:`"d:\hoge\tgfolder\data base\*"`
悪い例:`"d:\hoge\tgfolder\data base\"*`
- ワイルドカードは`*.*`としてもよい
- ***rd***にはワイルドカードは***不要***
- 全角のスペースが入らないように注意する
- && は2つ打つ
- `del /F /S d:\hoge\tgfolder\database\* && rd /s d:\hoge\tgfolder\database\`
- Copyして画面に貼り付けてEnter
- 削除するか効いてくるのでひたすらYを押す。
- もし違うときはY以外を押すかCtrl+Cで止まる。
- 最後にプロセスはファイルにアクセスできません。別のプロセスが使用中です。 が出たら成功 `d:\hoge\tgfolder\database\`はもぬけの殻になっています。
- エクスプローラーを開きます`explorer .`
- `CD\`でカレントをルートにします
- CMDを閉じます。
- エクスプローラーから目視で`d:\hoge\tgfolder\database\`の一つ上にあがって消します。
理由
この方式はあとに残らないので、最後になにを消したのがbatもないのでわかりません。
このためわざとバグを起こして終了の合図にするとともに、どこ最終的に消すのか確認するようになっています。
&&
は前のプロセスが終わってから次の命令を実行するという意味になります。鬼モード
危険すぎてのせられません。
要は両方とも/Qをつけてdelは&&
の前に> nul &&
と> nul
を入れます。超鬼モード
一つ上のフォルダに上がってから実行します。
こうなるとなに一つ残りません。
これはもうbatを組みましょう。cmd.exeでもワンライナーができる
今までcmd.exeはワンライナーがかけないと思っていましたが、できます。
&&
が答えです。
batがウィルスに引っかかるときは、コマンドラインにまとめて打ち込むようにすると早いです。補足
今回はCMD.exeを開き、削除したいディレクトリに移動して、貼り付けるだけで削除にすることを考えていましたが、なぜかルートに飛ぶので、断念しました。なぜかrdのときにルートに移動するのです。