【发布时间】:2012-10-03 13:20:54
【问题描述】:
我需要一个批处理文件来提示用户输入文件路径和文件夹名称中的前 3 个字母。然后批处理将删除具有这三个字母的文件夹中的所有文件夹和文件,但保留以这三个字母开头的文件夹。我有一个批处理文件,可以删除文件夹和子文件夹中的所有文件,但我也需要它来删除子文件夹。这是我删除所有文件的代码:
@echo off
set /p filepath=Path to Main Directory:
set /p string=First Letters of Sub-Folders to be Cleansed:
FOR /D %%G in ("%filepath%\%string%*") DO del "%%G\*.*" /q /s
echo Done
pause
然后我尝试了很多不同的方法来删除%%G的子文件夹。我在这里命名%%G 的子文件夹:
@echo off
set /p filepath=Path to Main Directory:
set /p string=First Letters of Sub-Folders to be Cleansed:
FOR /D %%G in ("%filepath%\%string%*") DO for /r /d %%i in (%%G\*) do del "%%G\*.*" /q && echo %%i
echo Done
pause
但是当我尝试在末尾添加&& rd /s /q %%i 时,它显示找不到文件和路径。
【问题讨论】:
-
我认为这可能有点令人困惑,我有一个名为 test 的文件夹。其中有 exp1 和 exp2。在 exp1 中有一个名为 test2 的文件夹,其中包含 test.txt。我想要一个在文件夹名称中搜索 exp 的批处理文件,然后删除 test2 和 test.txt 以及任何其他子文件夹或文件。
标签: batch-file search cmd directory delete-file