[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
回复 1# swanseabrian
这个应当勉强能用,未经测试:
  1. @echo off
  2. for /f "delims=" %%i in ('dir /b /s /ad') do (
  3.     pushd %%i
  4.     for /f %%j in ('dir^|findstr /r /c:" 1 个文件"') do rd /s /q %%i
  5.     popd
  6. )
  7. pause
复制代码

TOP

\\是转义,表示一个反斜杠。可以去学学findstr命令。

TOP

[^\\]表示非反斜杠的字符。

TOP

findstr中的*意义与别处不一样。
请查看findstr中的帮助文档。

TOP

findstr /?
1

评分人数

TOP

回复 10# swanseabrian

行吗?

TOP

回复 12# swanseabrian
也不对!!!
你看到的只是表面现象,上面搜索到的只是“计数.txt”,并不是文件夹“计数”,如果文件夹“计数”中不含“计数.txt”文件,就搜不到。

TOP

不信的话,你可以把搜索字符改为"计数.txt",会得到同样结果。

TOP

你说的不就是http://www.bathome.net/thread-60052-1-1.html中的代码吗?
详细信息\\——表示文件夹“详细信息”和代表路径结束的反斜杠。
[^\\]*.txt$——这部分才表示上面文件夹中的文件名及扩展名。

TOP

你没有理解对,所以改的也是错误的。

TOP

本帖最后由 qixiaobin0715 于 2021-9-22 18:17 编辑

回复 18# swanseabrian
关键是你自己要表达什么,按字面意思分析的话,应当匹配下面条件的字符:
计数+0到若干个反斜杠+任意一个字符+txt
所以从可能性上分析,能够匹配“计数.txt”这样的字符。因为0个反斜杠也符合匹配条件。
其中的.在findstr中可表示任意一个字符,如果我就要表示点号的话,就应当转义,正确表达点号应当是:\.

TOP

本帖最后由 qixiaobin0715 于 2021-9-22 18:49 编辑

你在findstr中用/s没什么用啊?用/r是个好习惯,虽然有时可以省略。
findstr中使用的不是通常意义上的正则,叫一般表达式更贴切。
1

评分人数

TOP

回复 22# swanseabrian
我给出的代码不行吗?为什么要修改?

TOP

返回列表