所以我现在正在尝试删除一堆由程序创建的子文件夹,循环地删除,因为它会重新创建子文件夹。我知道如何调度批处理文件,现在我的问题是如何有效地开始创建批处理文件。为了澄清起见,假设我有一个名为D:\IGSG的目录。D:\IGSG中有250个文件夹,每个文件夹中都有一个名为D:\IGSG\F252341\arg的文件夹。我想删除所有~250个F文件夹中的所有\arg文件夹,而不删除F文件夹中的其他文件。现在,据我所知,唯一的方法就是有一个批次
cd D:\IGSG\F252341 del /Q arg
并且为每个子文件夹重复这些行,但为其中的每个文件夹键入这些文件夹名称将是单调乏味的,特别是考虑到不时会创建新的文件夹。因此,我正在寻找一种使用批处理的方法来删除子文件夹的子文件夹,而不删除其他文件,如果这有意义的话。
发布于 2018-06-30 23:13:15
此PowerShell脚本将递归子目录结构,并删除arg目录中的所有文件和子目录。请确保将IGSG目录的位置更改为您的目录。如果您确信将删除正确的文件,请从Remove-Item cmdlet中删除该-WhatIf。
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外壳运行它,请将上面的代码放入名为'dodel.ps1‘的文件中,并使用以下命令运行:
powershell -NoProfile -File .\dodel.ps1发布于 2018-07-02 02:42:19
在cmd行上,for /d /r X:\path与通配符的组合将枚举arg附加的.?满足以下要求的所有文件夹名称:
for /d /r D:\IGSG %A in (arg.?) do @echo rd /s /q "%A" 如果输出看起来是正确的,则删除回声。
在批处理文件中,将%-符号-> %%A
@Echo off
for /d /r D:\IGSG %%A in (arg.?) do echo rd /s /q "%%A"批处理/命令行可以与PowerShell竞争的罕见情况之一。
https://stackoverflow.com/questions/51111865
复制相似问题