【问题标题】:Unable to Delete empty folders of directory and sub-directory using batch无法使用批处理删除目录和子目录的空文件夹
【发布时间】:2021-05-26 13:05:56
【问题描述】:

在批处理文件的帮助下,我可以从主目录和子目录中删除文件,但我发现很难删除其中的文件被删除后留下的空子目录。我已经编写了脚本,但它不适用于删除空子目录部分

我的批处理脚本

@echo off
Set _Extentions=".LOG"
Set _FolderList= "D:\FCS"
Set _FolderList=%_FolderList% "D:\SMSGateway\SMSLogs"
Set _NoOfDays=15
for %%s in (%_FolderList%) do (
                  for %%d in (%_Extentions%) do (
                              call :process_Deletion %%s %%d
                                )
)

:process_Deletion
IF [%1] == [] GOTO EndOfFun
set _ParaPath=%1
set _ParaExtn=%2

echo forfiles /P %_ParaPath% /S /m *%_ParaExtn% /D -%_NoOfDays% /C "cmd /c if @isdir==FALSE echo @path @fdate @ftime"

echo forfiles /P %_ParaPath% /S /m *%_ParaExtn% /D -%_NoOfDays% /C "cmd /c if @isdir==FALSE del @file" 

echo for /f "delims=" %%d in ('dir %_FolderList% /s /b /ad ^| sort /r') do rd "%%d"

:EndOfFun

EXIT /B

我在这里做错了什么?请帮忙..

【问题讨论】:

    标签: batch-file


    【解决方案1】:

    空目录需要rdrmdir

    https://www.computerhope.com/rmdirhlp.htm

    rd 和 rmdir 命令删除 MS-DOS 中的空目录。要删除包含文件或目录的目录,必须使用 deltree 命令。如果您运行的是 Microsoft Windows 2000 或 Windows XP,请使用 /S 选项。

    【讨论】:

    • 我尝试使用 "do rmdir" ,结果相同。 !!!我的 --- echo for /f "delims=" %%d in ('dir %_FolderList% /s /b /ad ^| sort /r') do rmdir "%%d"--- 格式正确吗?
    • @AlokSharma - 你更需要rd /s /q "c:\some\path"
    • @npocmaka - rd /s /q %_FolderList%!!最后添加了这个代替“%%d”,但仍然是同样的问题。你能帮我用你给我的脚本写的这个命令吗? .
    猜你喜欢
    • 1970-01-01
    • 2011-10-13
    • 2013-09-04
    • 2021-12-07
    • 2018-08-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多