如何快速刪除包含數百萬文件的資料夾:Windows 批次檔案解決方案

在日常工作中,我們偶爾會遇到一些看似簡單,實則棘手的問題。最近,我就遇到了這樣一個挑戰:如何刪除一個包含超過兩百萬個文件的資料夾。

問題描述

我有一個資料夾,裡面累積了超過兩百萬個文件。當我試圖通過 Windows 檔案總管直接刪除這個資料夾時,系統就會卡死,無法完成操作。這是因為 Windows 在處理如此大量的文件時會變得異常緩慢,甚至完全無響應。

解決方案:使用批次檔案

在嘗試了多種方法後,我發現使用 Windows 批次檔案(.bat)是最有效的解決方案。這種方法不僅能夠處理大量文件,而且速度相當快。

以下是我使用的批次檔案代碼:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
@echo off
setlocal enabledelayedexpansion

set "folder_path=%~dp0"

echo 警告:此批次檔案將快速刪除以下資料夾中的所有檔案和子資料夾:
echo %folder_path%
echo.
echo 請確認這是您想要清空的正確資料夾。
echo 按 Y 繼續,或按任意其他鍵取消操作。
set /p confirm=確認刪除 (Y/N)?

if /i "%confirm%" neq "Y" (
echo 操作已取消。
goto :EOF
)

echo.
echo 正在快速刪除所有內容,請稍候...

pushd "%folder_path%"

:: 使用 robocopy 來快速清空資料夾
mkdir empty_temp
robocopy empty_temp . /mir /mt:32

:: 刪除臨時資料夾
rmdir empty_temp

popd

echo 所有內容已被刪除。

echo.
echo 按任意鍵退出。
pause > nul

如何使用這個批次檔案

  1. 將上面的代碼複製到一個文本編輯器中(如記事本)。
  2. 將文件保存為 .bat 格式,例如 fast_delete_all.bat
  3. 將這個 .bat 文件放在你想要清空的資料夾中。
  4. 雙擊運行該 .bat 文件。
  5. 仔細閱讀警告信息,確認路徑是否正確。
  6. 如果確認無誤,輸入 'Y' 並按 Enter 執行刪除操作。

為什麼這個方法有效

這個批次檔案之所以能夠快速處理大量文件,主要是因為它使用了 robocopy 命令。robocopy(Robust File Copy)是 Windows 的一個強大的文件複製工具,但在這裡我們巧妙地用它來"複製"一個空資料夾,從而達到快速清空目標資料夾的效果。

/mir 參數使 robocopy 鏡像空資料夾到目標資料夾,實際上刪除了所有內容。而 /mt:32 參數啟用了多線程操作,大大加快了處理速度。

安全提示

雖然這個方法非常有效,但也請記住:

  1. 使用前務必仔細檢查要刪除的資料夾路徑是否正確。
  2. 這個批次檔案會刪除指定資料夾中的所有內容,包括子資料夾和隱藏文件,請確保你真的想要刪除所有內容。
  3. 建議在執行前先備份重要數據。

結論

當面對需要刪除大量文件的情況時,Windows 內建的刪除功能可能會讓你失望。但是,通過使用這個簡單的批次檔案,你可以輕鬆且快速地解決這個問題。這不僅節省了時間,也避免了系統卡死的風險。

希望這個解決方案能幫助到遇到類似問題的朋友。