我想从特定位置删除所有名为Debug Release x86 x64
的子目录,同时排除所有.git
子目录。我可以在Linux(find -type d -name Debug -and -not .git -delete
或类似的语言)中轻松地做到这一点。
我在这里做错了什么? FINDSTR
与小写的debug release
关键字应排除在外,我需要区分大小写。
FOR /R C:\code /D %%I IN (DIR /S /B Debug Release x86 x64 ^| FINDSTR /V \. ^| FINDSTR /V debug ^| FINDSTR /V release) DO ECHO %%I
答案 0 :(得分:2)
使用以下代码:
@echo off
setlocal EnableDelayedExpansion
pushd "dir_with_subfolders"
for /F "delims=" %%A IN ('dir /S /B /AD "Debug Release x86 x64"') do (
set "loc=%%~fA"
if "!loc:\.git\=!" == "!loc!" (
rd /s /q "%%~fA"
)
)
popd
pause & exit /b
答案 1 :(得分:2)
似乎您只想递归地删除在特定路径中以debug
开头的文件夹?:
@cd /d "C:\code"
@for /f "delims=" %%i in ('dir /b /s /ad "debug*"') do @echo @rmdir /S/Q "%%~fi"
对结果感到满意后,只需删除@echo
。如果我误解了您的问题,请告诉我,但这就是Linux查找字符串所显示的内容。