如何使用CMD查找包含特定字符串的文件夹?

时间:2019-05-27 12:22:38

标签: file cmd directory findstr

我需要找到在特定位置包含单词“ test”或“ Test”或“ TEST”的每个文件夹的路径。文件树很大。

这将删除包含“ test”的每个文件夹。我试过使用 findstr函数。

findstr /i "test"

我希望获取包含“测试”的每个文件夹路径

1 个答案:

答案 0 :(得分:1)

可以使用FOR循环来生成和迭代目录列表。如果您满意要删除正确的目录,请从包含echo的行中删除rmdir

@echo off
pushd \
for /f "delims=" %%a in ('dir /s /b /a:d "*test*"') do (
    echo if exist "%%~a" (rmdir /s /q "%%~a")
)
popd

如果您想将Powershell推向前进,微软称这是未来,那么类似的事情可能会奏效。当您确定将删除正确的目录后,请从-WhatIf cmdlet中删除Remove-Item

=== Remove-TestDirectories.ps1

$previousdir = ":" # set to impossible filesystem name

Get-ChildItem -Directory -Recurse -Path "C:\" -Filter "*test*" -Force -ErrorAction SilentlyContinue |
    Sort-Object -Property FullName |
    ForEach-Object {
        #"{0} and {1} and {2}" -f @($previousdir, $_.FullName, $_.FullName.StartsWith($previousdir))
        if (-not $_.FullName.StartsWith($previousdir)) {
            $previousdir = $_.FullName
            if (Test-Path -Path $_.FullName) { Remove-Item -Path $_.FullName -Recurse -WhatIf}
        }
    }

这可以从cmd.exe shell运行。

powershell -NoLogo -NoProfile -File Remove-TestDirectories.ps1