[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文件操作] 【已解决】请问以下cmd代码为什么无法删除指定后缀文件?

本帖最后由 jave000 于 2021-9-9 22:29 编辑
  1. for /R %%i in (*.b[0-9] *.bom *.err *.h *.idf *.log *.prt) do del /F /Q /S "%%i"
复制代码
我要删除若干文件,其中有一类的后缀为.b1,这个1可以是任何数字,我也不知道会不会出现两位数,但我这么写连一位数的都删不掉

求教
1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

回复 1# jave000
  1. @echo off
  2. set x=\.b[0-9][0-9]* \.bom \.err \.h \.idf \.log \.prt
  3. for /f "delims=" %%a in ('dir /b /s /a-d^|findstr /r /e "%x%"') do del /a /f /q "%%a"
  4. pause
复制代码
1

评分人数

TOP

一般表达式只有findstr才支持。

TOP

本帖最后由 jave000 于 2021-7-14 09:51 编辑

回复 2# qixiaobin0715


     谢谢,删除成功了,请问一下为什么写在括号里就不行?我的这个写法,只有.b1等文件没动静,其他都能正常删掉

TOP

回复 4# jave000
2楼代码可以将变量x的值直接放在括号里,但不美观。

TOP

这样吗?
%\.b[0-9][0-9]* \.bom \.err \.h \.idf \.log \.prt%
是挺奇怪的

TOP

回复 7# qixiaobin0715


  这些我刚学到,一个.只能代表一个字符吧,我本来以为这里只能用*,因为1-∞,但是看你的代码.也能代表1-∞,另外这些完全不懂/b /s /a-d /a /f /q,正则表达里也没有这几个
FOR循环我刚开始学习论坛里的那个链接
谢谢

TOP

回复 6# jave000
findstr /r /e "\.b[0-9][0-9]* \.bom \.err \.h \.idf \.log \.prt"

TOP

回复 7# jave000
/b /s /a-d /a /f /q这几个参数可学习dir、del命令中的相关内容。

TOP

回复 7# jave000
如果是刚接触bat,建议转投powershell,接受newswan的提议。http://www.bathome.net/thread-58889-1-6.html。我现在也在学习powershell,只不过对bat还是老有感情丢不下。

TOP

回复 9# qixiaobin0715


    好的,十分感谢,我查查

TOP

回复 7# jave000


系统自带的命令行帮助文件ntcmds.chm里面既有讲解又有实例
http://bbs.bathome.net/thread-3926-1-1.html
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 12# Batcher


    感谢,已收藏

TOP

回复 10# qixiaobin0715


    powershell我都不会用,因为我完全看不懂帮助文件

TOP

活宝改头换面又回归了!!!

TOP

返回列表