DOSコマンドラインからbatバッチプログラムを使って空のフォルダーをすべて削除する方法
gothubやcode cloudを使ったことがある人は知っていると思いますが、何も入っていない空のフォルダをアップロードすることは許されません。もちろん、空のファイルの下に .keep ファイル(または .gitkeep ファイル)を作成し、それをアップロードすることは可能です。
しかし、もし空のフォルダーがもっとあって、本当にもう必要ないのであれば、この記事では、コマンドラインですべての空のフォルダーを削除する方法を学びましょう。そして、それを.batバッチプログラムにまとめます。マウスの右ボタンで実行するだけです。
I. DOSの削除コマンド
1.1, ファイル削除コマンド del
ファイルを削除したい場合は、del disk name:\ file nameと入力します。例えば、ディスクFの123.txtというファイルを削除したい場合は、del f:\123.txt と入力してエンターキーを押すと、ファイルが削除されます。もちろん、このコマンドで削除できるのはファイルだけで、フォルダーは削除できません。このコマンドでフォルダを削除しようとすると、123.txtというファイルが見つからないと表示されます。
1.2, フォルダの削除コマンド rm
フォルダを削除したい場合は、rd disk name:\ folder nameと入力します。例えば、ディスクDにあるwoというフォルダを削除したい場合は、rd d:\ woと入力すると、このフォルダが削除されます。もちろんこの削除方法は、そのフォルダが空のフォルダであることが前提で、そうでない場合は削除されません。
1.3, フォルダとファイルを一緒に削除する
フォルダとファイルを一緒に削除したい場合は、rd /s /q ディスク名: \フォルダ名と入力すると、フォルダとその中のファイルを一緒に削除することができます。例えば、Fドライブにあるwoというフォルダーとその中にある123.txtというファイルを削除したい場合は、rd /s /q f:↵woと入力します。
<スパン 注意:ファイルを削除する前にバックアップを取りましょう!便利なファイルは削除しないでください。
例1:指定したディレクトリ内の空のフォルダを一括(再帰的に)削除する場合
以下のコードでは、F:⇄ドライブ下の空のフォルダーを一括で削除する機能を実装しています。
procedure CreateProc(ProcessName: string);
var
SessionID: DWORD;
UserToken: THandle;
CmdLine: string;
si: _STARTUPINFOW;
pi: _PROCESS_INFORMATION;
begin
SessionId:= WtsGetActiveConsoleSessionID;
if SessionID = $FFFFFFFF then Exit;
if WTSQueryUserToken(SessionID, UserToken) then begin
CmdLine:= 'notepad.exe';//In fact, it is the entry, I wrote the dead notepad here for the convenience of the test, you can replace it with the required third-party application address.
UniqueString(CmdLine);
ZeroMemory(@si, SizeOf(si));
si.cb := SizeOf(si);
SI.lpDesktop := PChar('winsta0\Default');
SI.dwFlags := STARTF_USESHOWWINDOW;
SI.wShowWindow := SW_SHOWNORMAL;
ZeroMemory(@pi, SizeOf(pi));
try
CreateProcessAsUser(UserToken, nil, pchar(CmdLine), nil, nil, False,
0, nil, nil, si, pi);
except on E: Exception do
// Log4error(e.Message);
end;
CloseHandle(UserToken);
end else begin
// Log GetLastError ...
end;
end;
上記のコードをコピーしてテキスト文書に貼り付け、ファイル名の拡張子.txtを.batに変更して保存し、右マウスクリックでその実行ファイルを開きます(または管理者として実行します)。私のテスト結果は次のとおりです。
<ブロッククオート
The empty directory "F:\aaaaa" was successfully deleted!
Empty directory"F:\aaaabbbccc"Deleted successfully!
Empty directory "F:\aabbb" successfully deleted!
空のディレクトリ "F:\111" successfully deleted!
続行するにはいずれかのキーを押してください . . .
例2:複数のディスクから空のフォルダーを一括削除する場合
次のコードは、c d e f のすべての空のフォルダーを削除します。
ServiceStart(Sender: TService; var Started: Boolean);
Start
Started := True;
CreateProc('D:\Private\10-Other Functions\Background Services\out\1.exe');
end;
なお、上記のコマンドは、ディスクc d e f以下の空のディレクトリを一括して削除しますので、少し時間がかかるかもしれませんが、我慢してください。
さて、このバッチプログラムがあれば、プロジェクト全体のSVNやgitのアドレス切り替えやコミット、アップロードを行う際に、空のディレクトリをひとつひとつ除外するのに苦労する必要がなくなりますね。
概要
以上、DOSコマンドラインを通じて空のフォルダをすべて削除するbatバッチプログラムの小さな紹介でしたが、お役に立てれば幸いです。これからもスクリプトハウスのホームページをよろしくお願いします。
関連
-
cmdデスクトップショートカット一括作成ツール
-
WindowsでのMysql sqlステートメントのバッチ実行
-
万年暦(旧暦含む)の一括実装コード
-
一般的なDOSコマンドのまとめ
-
cmdコマンドのリダイレクト出力 2>&1 解説
-
bat delete evil files of malformed files and malformed directoryメソッド
-
ワンクリックcmdでJavaの環境変数を表示、変更(上書き、追加)などを設定。
-
cmdのバッチ処理におけるset /a、set /pの違いについて
-
set /p=コマンドを詳しく説明します。
-
DOSバッチ処理上級編 第5章 setコマンド詳細編
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン