首页 > 解决方案 > 批处理文件。从名为 admin 的子文件夹中删除所有文件

问题描述

我正在批处理中的一个脚本,它首先在一个名为admin的目录中找到所有子文件夹。该脚本首先查看目录中的所有文件夹,如果找到名为 admin 的文件夹,它会删除该子文件夹中的所有文件,还会删除子子文件夹中的所有文件,但名为fn.asp的文件除外。

到目前为止,该脚本正在查找所有名为 admin 的子文件夹。我无法解决的问题是,当我们找到名为 admin 的子文件夹时,我们会获取它的路径,并且 for 循环会遍历该路径中的所有子文件夹并删除除上述文件之外的所有文件。我遇到的唯一问题是我无法通过以下代码中的路径。

FOR /R [path] %%variable IN ( set_of_file_filters ) DO (
   command
)

这是我写的代码。

@echo off

setlocal enabledelayedexpansion

set dirPath=D:\batchs

cd /d %dirPath%

:: Find all the sub-folders and further child folders that are named as admin.
for /d /r %%a in (*) do (
if %%~nxa == admin (
echo folder name admin was found...
echo "%%a"

for /R "%%a" %%f in (*) do (
    set fileName=%%~nxf
    echo %%f
    if "!fileName!"=="fn.asp" (
        echo FOUND: !fileName!
    ) else (
         echo OTHER: !fileName!
         ::del "%%a"
         echo File: !fileName! deleted
    )
)

echo.
) else (
echo Folder named admin was not found
)
)

如果有人能告诉我我做错了什么,那将非常有帮助,因为我无法找出问题所在。

标签: windowsbatch-filebatch-processing

解决方案


推荐阅读