Board logo

标题: [文件操作] 求助批处理删除指定文件的问题 [打印本页]

作者: opelwang    时间: 2023-12-4 17:10     标题: 求助批处理删除指定文件的问题

下面代码,是删除指定目录列表下文件名中包含指定关键字的文件,但是,不生效!删除不了文件!
其实我模拟的文件是存在的。
麻烦帮忙看看,谢谢!
  1. @echo off
  2. REM 设置要删除的文件路径列表(每行一个路径)
  3. set "target_paths=C:\Users\adminZS6\Documents\测试1
  4. D:\测试文件\测试2
  5. E:\Path3"
  6. REM 设置要删除的关键字列表(每行一个关键字)
  7. set "target_keywords=带花生
  8. 花茶
  9. 黄瓜"
  10. REM 循环遍历要删除的文件路径
  11. for %%p in (%target_paths%) do (
  12.     REM 循环遍历要删除的关键字
  13.     for %%k in (%target_keywords%) do (
  14.         REM 删除符合关键字的文件
  15.         for /r "%%p" %%f in (*%%k*) do (
  16.             REM 删除文件
  17.             echo 正在删除文件: %%f
  18.             del /f /q "%%f"
  19.             if errorlevel 1 (
  20.                 echo 删除文件 %%f 失败.
  21.             ) else (
  22.                 echo 文件 %%f 删除成功.
  23.             )
  24.         )
  25.     )
  26. )
  27. exit
复制代码

作者: ShowCode    时间: 2023-12-4 17:42

本帖最后由 ShowCode 于 2023-12-4 18:02 编辑

回复 1# opelwang
  1. @echo off
  2. REM 设置要删除的文件路径列表(每对双引号里面一个路径)
  3. set target_paths="C:\Test\测试\From" "C:\Test\To"
  4. REM 设置要删除的关键字列表(每对双引号里面一个关键字)
  5. set target_keywords="带花生" "花茶" "黄瓜"
  6. for %%p in (%target_paths%) do (
  7.     pushd "%%~p"
  8.     for %%k in (%target_keywords%) do (
  9.         for /f "delims=" %%f in ('dir /b /s /a-d *%%~k* 2^>nul') do (
  10.             echo 正在删除文件: %%f
  11.             del /f /q "%%f"
  12.             if errorlevel 1 (
  13.                 echo 删除文件 %%f 失败.
  14.             ) else (
  15.                 echo 文件 %%f 删除成功.
  16.             )
  17.         )
  18.     )
  19.     popd
  20. )
  21. pause
复制代码

作者: opelwang    时间: 2023-12-4 17:56

回复 2# ShowCode


    @echo off
REM 设置要删除的文件路径列表(每对双引号里面一个路径)
set target_paths="C:\Users\adminZS6\Documents\测试1" "D:\测试文件\测试2"
REM 设置要删除的关键字列表(每对双引号里面一个关键字)
set target_keywords="带花生" "花茶" "黄瓜"
for %%p in (%target_paths%) do (
    for %%k in (%target_keywords%) do (
        for /f "delims=" %%f in ('dir /b /s /a-d *%%~k* 2^>nul') do (
            echo 正在删除文件: %%f
            del /f /q "%%f"
            if errorlevel 1 (
                echo 删除文件 %%f 失败.
            ) else (
                echo 文件 %%f 删除成功.
            )
        )
    )
)
pause

修改了路径之后,但是,还是删除不了文件了。
右键,以管理员身份运行的。
模拟的文件确认存在!

作者: ShowCode    时间: 2023-12-4 18:01

回复 3# opelwang
  1. @echo off
  2. REM 设置要删除的文件路径列表(每对双引号里面一个路径)
  3. set target_paths="C:\Users\adminZS6\Documents\测试1" "D:\测试文件\测试2"
  4. REM 设置要删除的关键字列表(每对双引号里面一个关键字)
  5. set target_keywords="带花生" "花茶" "黄瓜"
  6. for %%p in (%target_paths%) do (
  7.     pushd "%%~p"
  8.     for %%k in (%target_keywords%) do (
  9.         for /f "delims=" %%f in ('dir /b /s /a-d *%%~k* 2^>nul') do (
  10.             echo 正在删除文件: %%f
  11.             del /f /q "%%f"
  12.             if errorlevel 1 (
  13.                 echo 删除文件 %%f 失败.
  14.             ) else (
  15.                 echo 文件 %%f 删除成功.
  16.             )
  17.         )
  18.     )
  19.     popd
  20. )
  21. pause
复制代码

作者: opelwang    时间: 2023-12-4 18:37

回复 4# ShowCode


    感谢,测试通过了!
作者: yyz219    时间: 2023-12-4 19:16

恭喜恭喜问题解决




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2