首页 > 解决方案 > 批量删除所有子文件夹的子文件夹

问题描述

因此,我目前正在尝试定期删除由程序创建的一堆子文件夹,因为它将重新创建子文件夹。我知道如何安排批处理文件,现在我的问题是如何有效地创建批处理文件。为了澄清,假设我有一个名为D:\IGSG. 中有 250 个文件夹D:\IGSG,每个文件夹中都有一个名为D:\IGSG\F252341\arg. 我想\arg从我拥有的所有 ~250 个 F 文件夹中删除所有文件夹,而不删除 F 文件夹中的其他文件。现在,我所知道的唯一方法是批量生产

cd D:\IGSG\F252341 del /Q arg

并为每个子文件夹重复这些行,但是为其中的每个文件夹输入这些文件夹名称会很乏味,尤其是考虑到不时创建新文件夹。所以我正在寻找一种方法来批量删除子文件夹的子文件夹,而不删除其他文件,如果这有意义的话。

标签: batch-filecmd

解决方案


此 PowerShell 脚本将通过子目录结构递归并删除目录内的所有文件和子目录arg。请务必将 IGSG 目录的位置更改为您的位置。如果您对删除正确的文件感到满意,请-WhatIfRemove-Itemcmdlet 中删除 。

Get-ChildItem -Directory -Recurse -Path 'C:\src\t\delsubs\IGSG\F*' -Filter 'arg' |
    Remove-Item -Path {(Join-Path -Path $_.FullName -ChildPath '*')} -Recurse -Force -WhatIf

如果您需要从 cmd.exe shell 运行它,请将上面的代码放入名为“dodel.ps1”的文件中并使用以下命令运行:

powershell -NoProfile -File .\dodel.ps1

推荐阅读