如何在 Windows 10 中刪除檔案但保留資料夾

若要在 Windows 10 中刪除檔案但保留資料夾,請使用 PowerShell 列出檔案項,並將這些檔案項目傳遞給Remove-Item刪除命令。資料夾不會被傳遞給刪除命令,因此資料夾樹將保持不變。請先使用 PowerShell 預覽目標-WhatIf:此操作會繞過檔案總管的回收站,因此在實際運作之前請務必備份。

刪除任何內容前

選擇要清除的確切父資料夾,然後檢查其中是否包含您仍然需要的檔案。關閉可能正在使用這些文件的應用程式。如果目錄已與雲端服務同步或與他人共用,請考慮刪除其中文件對這些資源的影響。

  • 請使用完整的資料夾路徑,不要使用磁碟機號碼或寬泛的位置,例如C:\。
  • 請先備份重要文件。Remove-Item本程式不會提供從回收站還原檔案的檔案總管選項。
  • 使用具有目標存取權的帳戶執行 PowerShell。首先打開一個普通視窗來查看自己的檔案;提升權限並不能繞過所有安全限制。
Windows 10 檔案總管顯示一個 Project 資料夾,其中包含 Data、Reports 和 Scripts 子資料夾以及多個檔案。
選擇需要保留其層級結構的父資料夾。

預覽 PowerShell 將要刪除的文件

開啟「開始」功能表,搜尋「Windows PowerShell」,然後啟動它。指定$root要清除的資料夾。路徑周圍要保留引號,尤其是在路徑包含空格的情況下:

$root = 'D:\Projects\Project'
Get-ChildItem -LiteralPath $root -File -Recurse -Force |
    Remove-Item -WhatIf

將範例路徑替換為您自己的路徑。-LiteralPath此參數會將值視為字面路徑,而不是解釋通配符。此參數-File會將結果限制為文件,-Recurse包括嵌套資料夾中的文件,以及-Force搜尋中包含隱藏文件或系統文件。最後,-WhatIf此參數會要求 PowerShell 顯示如果不執行刪除操作將會執行的操作。

Windows PowerShell 顯示僅檔案 Get-ChildItem 命令透過管道傳遞給 Remove-Item,並帶有 -WhatIf 參數。
-WhatIf 開關列出檔案目標,但不刪除它們。

仔細閱讀預覽中列印的每個路徑。確認每個路徑都位於您要清除的資料夾樹內。 PowerShell 應該會報告檔案操作;如果目標路徑錯誤或出現您意料之外的目錄,請停止操作並更正$root後再繼續。

PowerShell WhatIf 輸出命名計畫刪除的文件,但不列出資料夾。
逐一檢查路徑;預覽應該顯示檔案名,而不是目錄名。

刪除文件,保留資料夾。

預覽正確後,運行相同的僅文件管道,但不執行-WhatIf:

Get-ChildItem -LiteralPath $root -File -Recurse -Force |
    Remove-Item -Force

Get-ChildItem僅提供文件對象,因此Remove-Item會刪除這些文件,而保留根資料夾及其子資料夾。空資料夾將保持為空;此命令不會刪除它們。第二個選項-Force允許Remove-Item刪除隱藏或唯讀文件,但它無法繞過存取控制。 Microsoft 在其Get-ChildItem 參考文件中記錄了僅文件和遞歸列出選項,並在Remove-Item 參考文件中進行-Force了解釋。-WhatIf

檔案總管顯示,刪除檔案後,「資料」、「報告」和「腳本」資料夾樹仍然存在。
文件條目刪除後,嵌套資料夾結構仍然保留。

僅清理一種類型的文件。

若要僅刪除特定副檔名,請在 `.` 前新增篩選器Remove-Item。例如,僅預覽.txt整個樹中的文件:

Get-ChildItem -LiteralPath $root -File -Recurse -Force |
    Where-Object { $_.Extension -ieq '.txt' } |
    Remove-Item -WhatIf

檢查預覽後,運行相同的管道,但將 `<filename>`Remove-Item -Force替換為 `<filename> Remove-Item -WhatIf`。對於不同子資料夾中重複的檔案名,請使用 `<filename> $_.Name` 而不是 ` <filename>` 進行過濾$_.Extension,例如Where-Object { $_.Name -ieq 'image.png' }`<filename>. ...

驗證結果並處理錯誤

檢查根路徑是否仍然存在,並統計 PowerShell 仍然可以找到的檔案數量:

Test-Path -LiteralPath $root
@(Get-ChildItem -LiteralPath $root -File -Recurse -Force).Count

第一個命令應該回傳True。計數為 00表示搜尋未找到任何剩餘檔案。如果您看到「存取被拒絕」或「檔案正在使用」錯誤,則表示受影響的項目未刪除。請使用文件關閉應用程序,然後重試;對於受保護的位置,僅當您有權更改這些文件時,才使用具有所需權限的帳戶。-Force處理某些檔案屬性,但不處理權限限制。

如果你的目標是在刪除檔案的同時保留所有資料夾名稱,請保留-File過濾器並-WhatIf在​​每次實際運行前檢查輸出結果。避免使用諸如Remove-Item $root -Recurse“:”之類的命令,因為這些命令會直接刪除目錄內容,也可能刪除資料夾。

留下評論

使用 FotoSketcher 將照片轉換為繪畫、素描和卡通

使用 FotoSketcher 將照片轉換為繪畫、素描和卡通

使用 FotoSketcher Studio 將照片轉換成繪畫、鉛筆素描或卡通。學習如何選擇效果、調整預覽、保存作品。

使用音訊標識符詳細分析和識別音訊文件

使用音訊標識符詳細分析和識別音訊文件

了解音訊標識符揭示的位元率、編碼器和標籤訊息,其傳統工作流程如何運作,以及當前哪些工具可以檢查文件或識別歌曲。

我的照片索引:一款適用於 Windows 的開源照片管理器。

我的照片索引:一款適用於 Windows 的開源照片管理器。

My Photo Index 是一款舊版 Windows 相片目錄管理工具,用於標記、評分和瀏覽本機影像。請查看其文件功能、相容性限制以及一個維護良好的替代方案。

使用屬性變更器變更檔案和資料夾屬性、日期和時間

使用屬性變更器變更檔案和資料夾屬性、日期和時間

學習如何使用屬性變更器安全地編輯 Windows 檔案屬性和時間戳記、更新 JPEG EXIF 照片日期以及預覽批次變更。

如何在 Windows 10 中為每個顯示器設定不同的桌布

如何在 Windows 10 中為每個顯示器設定不同的桌布

為每個 Windows 10 顯示器設定單獨的壁紙,識別顯示器,調整影像適應度,並解決缺少顯示器選擇的問題。

pViewer:一款極簡圖像檢視器和漫畫閱讀器

pViewer:一款極簡圖像檢視器和漫畫閱讀器

了解 pViewer 的功能、照片和漫畫模式的工作原理、應該下載哪個 Windows 版本,以及舊版和重寫版之間的差異。

如何在 Windows 7 和 8 中使用快速鍵切換到下一個桌面背景

如何在 Windows 7 和 8 中使用快速鍵切換到下一個桌面背景

設定 Windows 7 或 8 投影片放映,建立一個小型 VBScript 快捷方式,並指派鍵盤熱鍵來切換到下一張桌布。

NeoDownloader:設定參數並從網站批量下載圖片

NeoDownloader:設定參數並從網站批量下載圖片

學習如何建立 NeoDownloader 專案、選擇爬取範圍、設定映像過濾器和目標位置,以及查看批次下載。

XnConvert:批次應用特效和轉換影像格式

XnConvert:批次應用特效和轉換影像格式

使用 XnConvert 可以批次套用特效、調整照片大小和轉換影像格式。選擇輸出設定、預覽編輯效果並保護您的原始文件。

使用 ManicTime 追蹤工作時間和電腦使用情況

使用 ManicTime 追蹤工作時間和電腦使用情況

了解 ManicTime 如何追蹤應用程式使用情況、活躍時間和空閒時間以及文檔,然後將您的活動歷史記錄轉換為專案標籤和時間表。