标题: [文件操作] 【已解决】请问以下cmd代码为什么无法删除指定后缀文件? [打印本页]
作者: jave000 时间: 2021-7-14 09:30 标题: 【已解决】请问以下cmd代码为什么无法删除指定后缀文件?
本帖最后由 jave000 于 2021-9-9 22:29 编辑
- for /R %%i in (*.b[0-9] *.bom *.err *.h *.idf *.log *.prt) do del /F /Q /S "%%i"
复制代码
我要删除若干文件,其中有一类的后缀为.b1,这个1可以是任何数字,我也不知道会不会出现两位数,但我这么写连一位数的都删不掉
求教
作者: qixiaobin0715 时间: 2021-7-14 09:45
回复 1# jave000 - @echo off
- set x=\.b[0-9][0-9]* \.bom \.err \.h \.idf \.log \.prt
- for /f "delims=" %%a in ('dir /b /s /a-d^|findstr /r /e "%x%"') do del /a /f /q "%%a"
- pause
复制代码
作者: qixiaobin0715 时间: 2021-7-14 09:49
一般表达式只有findstr才支持。
作者: jave000 时间: 2021-7-14 09:50
本帖最后由 jave000 于 2021-7-14 09:51 编辑
回复 2# qixiaobin0715
谢谢,删除成功了,请问一下为什么写在括号里就不行?我的这个写法,只有.b1等文件没动静,其他都能正常删掉
作者: qixiaobin0715 时间: 2021-7-14 10:01
回复 4# jave000
2楼代码可以将变量x的值直接放在括号里,但不美观。
作者: jave000 时间: 2021-7-14 10:12
这样吗?
%\.b[0-9][0-9]* \.bom \.err \.h \.idf \.log \.prt%
是挺奇怪的
作者: jave000 时间: 2021-7-14 10:27
回复 7# qixiaobin0715
这些我刚学到,一个.只能代表一个字符吧,我本来以为这里只能用*,因为1-∞,但是看你的代码.也能代表1-∞,另外这些完全不懂/b /s /a-d /a /f /q,正则表达里也没有这几个
FOR循环我刚开始学习论坛里的那个链接
谢谢
作者: qixiaobin0715 时间: 2021-7-14 10:28
回复 6# jave000
findstr /r /e "\.b[0-9][0-9]* \.bom \.err \.h \.idf \.log \.prt"
作者: qixiaobin0715 时间: 2021-7-14 10:31
回复 7# jave000
/b /s /a-d /a /f /q这几个参数可学习dir、del命令中的相关内容。
作者: qixiaobin0715 时间: 2021-7-14 10:43
回复 7# jave000
如果是刚接触bat,建议转投powershell,接受newswan的提议。http://www.bathome.net/thread-58889-1-6.html。我现在也在学习powershell,只不过对bat还是老有感情丢不下。
作者: jave000 时间: 2021-7-14 10:45
回复 9# qixiaobin0715
好的,十分感谢,我查查
作者: Batcher 时间: 2021-7-14 11:06
回复 7# jave000
系统自带的命令行帮助文件ntcmds.chm里面既有讲解又有实例
http://bbs.bathome.net/thread-3926-1-1.html
作者: jave000 时间: 2021-7-14 14:05
回复 12# Batcher
感谢,已收藏
作者: cmd1152 时间: 2021-7-18 14:23
回复 10# qixiaobin0715
powershell我都不会用,因为我完全看不懂帮助文件
作者: qixiaobin0715 时间: 2021-7-19 13:52
活宝改头换面又回归了!!!
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |