标题: [文件操作] 批处理删除指定类型文件如何实现排除/保留/不删除指定文件 [打印本页]
作者: yjw5738701 时间: 2017-3-12 21:24 标题: 批处理删除指定类型文件如何实现排除/保留/不删除指定文件
本帖最后由 pcl_test 于 2017-3-13 01:13 编辑
求教删除文件批处理
Windows\winsxs文件夹下,搜索删除所有prn*.inf,但是要保留prnms001和prnms002,这条批处理怎么写?
作者: yjw5738701 时间: 2017-3-12 21:25
prnms001.inf和prnms002.inf两个
作者: GNU 时间: 2017-3-12 21:32
执行代码之前,请对winsxs文件夹做好备份。- @echo off
- for /f "delims=" %%i in ('dir /b /s /a-d "%systemroot%\winsxs\prn*.inf"') do (
- if "%%~nxi" neq "prnms001.inf" (
- if "%%~nxi" neq "prnms002.inf" (
- del /f /q "%%i"
- )
- )
- )
复制代码
作者: yjw5738701 时间: 2017-3-12 21:36
回复 3# GNU 非常感谢。
作者: taofan712 时间: 2017-3-13 12:04
@echo off
for /f "delims=" %%i in ('dir /b "%systemroot%\winsxs\prn*.inf"^|findstr /v "001 002"') do del /q "%%i"
作者: 惆怅而又凄凉 时间: 2019-3-25 02:10
正好用到了,我做了一些修改,使代码通用了很多,可以用于各种场景了,本人新手,还请指教。
可以删除指定目录下的所有文件与文件夹,并且可以指定排除文件夹与文件- ::设置盘符为xydroot
- set "xydroot=%~dp0"
- ::将盘符:/缩进为盘符:
- set "xydroot=%xydroot:~,-1%"
- ::指定目录
- pushd "%xydroot%\"
- ::循环遍历指定目录内的所有文件夹并写入%%A(d,设为目录)
- for /f "delims=" %%A in ('dir /b /ad') do (
- ::如果%%A不是bbb(不区分大小写)则
- if /I not "%%A"=="bbb" (
- ::如果%%A不是ccc(不区分大小写)则
- if /I not "%%A"=="ccc" (
- ::删除目录
- rmdir /s /q "%%A"
- )
- )
- )
- ::循环遍历指定目录内的所有文件并写入%%A (-d,不含目录)
- for /f "delims=" %%A in ('dir /b /a-d') do (
- ::如果%%A不是start.exe则
- if /I not "%%A"=="start.exe" (
- ::跳过一切障碍,强制删除文件
- del "%%A" /f /q /a
- )
- )
- ::指定目录结束
- popd
复制代码
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |