对我来说,很深奥 |
学习学习。 |
shuini 发表于 2023-12-12 18:07 用echo显示查找结果,检查是否字符串表达问题。 表达式涵盖不全的,可以考虑用多字符串并用,中间用空格分开即可。 |
kingshui 发表于 2023-12-12 16:30 同样也会有字符匹配问题 |
本帖最后由 shuini 于 2023-12-12 19:38 编辑 ppll2030 发表于 2023-12-12 15:26 做了些修改,目前就剩完整名称为ar-SA的文件夹漏删,无关权限,因为这个是纯粹测试用的目录。 for /f "delims=" %%i in ('dir /b /s "c:\0000" ^| findstr /R /I ".*[-_~]ar-SA[-_~].*"') do (if exist "%%i\" (rd /q /s "%%i") else del /q /s "%%i") ----------------------- 以上代码问题在于以ar-SA开头的名称无法匹配正则表达式的前半部分,以ar-SA结尾的名称也无法匹配正则表达式的后半部分。 |
forfiles 直接,简单 |
shuini 发表于 2023-12-12 12:14 文件夹无法删除,请自行查看是否被其他程序占用或权限问题。 findstr的参数多加一个i,即搜索不区分大小写。如:findstr /ri |
学习一下 |
shuini 发表于 2023-12-12 08:26 哦。还有名字带空格问题,for的参数加上"delims="即可。 for /f "delims=" |
本帖最后由 ppll2030 于 2023-12-12 10:14 编辑 shuini 发表于 2023-12-12 08:26 特殊的搜索字符用正则表达式即可,把findstr的参数和搜索字符改为以下内容试试: findstr /r "[-_~]*[^a-z0-9]ar-SA[-_~]*[^a-z0-9]" |
ppll2030 发表于 2023-12-11 18:04 漏处理了有空格的名称,错处理了*ar-SA*。 比如处理“ar-SA”,也处理“ar-SA *”,但不处理如类似“Altar-SA”或“ar-SATA”结构的名称。 简单点说就是只处理单纯的“ar-SA”或“-ar-SA-”或“_ar-SA_”或“~ar-SA~”或“-ar-SA~”。。。即一看那名称就是特指的语言名称,而非简单以通配符匹配的组合。 |
本帖最后由 ppll2030 于 2023-12-11 18:06 编辑 for /f %%i in ('dir /b /s "c:\" ^| findstr /ilc:"ar-SA"') do (if exist "%%i\" (rd /q /s "%%i") else del /q /s "%%i") |
本帖最后由 newyun 于 2023-12-11 16:15 编辑 不好搞,我试了用&&也不行 |
感谢分享 |
你两次查找的路径都不一样,怎么提高效率 |
进来学习 |
本帖最后由 shuini 于 2023-12-11 12:23 编辑 holley2008 发表于 2023-12-11 09:53 之前也是用ai合并的,但这只能删文件不能删文件夹。 |
我用AI得出这个.. |
谢谢分享! |
学习代码 |
学习了 |
现在多利用AI做题,不一定好用,起码可以参考。
这段代码做了以下操作:
这是文心一言的回答。 |
可以练习forfiles |
Powered by Discuz! X3.3
© 2001-2017 Comsenz Inc.