标题: [文件操作] 求助批处理删除指定文件的问题 [打印本页]
作者: opelwang 时间: 2023-12-4 17:10 标题: 求助批处理删除指定文件的问题
下面代码,是删除指定目录列表下,文件名中包含指定关键字的文件,但是,不生效!删除不了文件!
其实我模拟的文件是存在的。
麻烦帮忙看看,谢谢!- @echo off
-
- REM 设置要删除的文件路径列表(每行一个路径)
- set "target_paths=C:\Users\adminZS6\Documents\测试1
- D:\测试文件\测试2
- E:\Path3"
-
- REM 设置要删除的关键字列表(每行一个关键字)
- set "target_keywords=带花生
- 花茶
- 黄瓜"
-
- REM 循环遍历要删除的文件路径
- for %%p in (%target_paths%) do (
- REM 循环遍历要删除的关键字
- for %%k in (%target_keywords%) do (
- REM 删除符合关键字的文件
- for /r "%%p" %%f in (*%%k*) do (
- REM 删除文件
- echo 正在删除文件: %%f
- del /f /q "%%f"
- if errorlevel 1 (
- echo 删除文件 %%f 失败.
- ) else (
- echo 文件 %%f 删除成功.
- )
- )
- )
- )
-
- exit
复制代码
作者: ShowCode 时间: 2023-12-4 17:42
本帖最后由 ShowCode 于 2023-12-4 18:02 编辑
回复 1# opelwang - @echo off
- REM 设置要删除的文件路径列表(每对双引号里面一个路径)
- set target_paths="C:\Test\测试\From" "C:\Test\To"
- REM 设置要删除的关键字列表(每对双引号里面一个关键字)
- set target_keywords="带花生" "花茶" "黄瓜"
- for %%p in (%target_paths%) do (
- pushd "%%~p"
- 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 删除成功.
- )
- )
- )
- popd
- )
- 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 - @echo off
- REM 设置要删除的文件路径列表(每对双引号里面一个路径)
- set target_paths="C:\Users\adminZS6\Documents\测试1" "D:\测试文件\测试2"
- REM 设置要删除的关键字列表(每对双引号里面一个关键字)
- set target_keywords="带花生" "花茶" "黄瓜"
- for %%p in (%target_paths%) do (
- pushd "%%~p"
- 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 删除成功.
- )
- )
- )
- popd
- )
- pause
复制代码
作者: opelwang 时间: 2023-12-4 18:37
回复 4# ShowCode
感谢,测试通过了!
作者: yyz219 时间: 2023-12-4 19:16
恭喜恭喜问题解决
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |