无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
查看: 1872|回复: 27
打印 上一主题 下一主题

[发布] 合并两条命令

[复制链接]
1#
发表于 2023-12-11 18:04:32 | 显示全部楼层
本帖最后由 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")

点评

漏处理了有空格的名称,错处理了*ar-SA*。 比如处理“ar-SA”,也处理“ar-SA *”,但不处理如类似“Altar-SA”或“ar-SATA”结构的名称。 简单点说就是只处理单纯的“ar-SA”或“-ar-SA-”或“_ar-SA_”或“~ar-S  详情 回复 发表于 2023-12-12 08:26
回复

使用道具 举报

2#
发表于 2023-12-12 10:00:44 | 显示全部楼层
本帖最后由 ppll2030 于 2023-12-12 10:14 编辑
shuini 发表于 2023-12-12 08:26
漏处理了有空格的名称,错处理了*ar-SA*。
比如处理“ar-SA”,也处理“ar-SA *”,但不处理如类似“Alt ...

特殊的搜索字符用正则表达式即可,把findstr的参数和搜索字符改为以下内容试试:
findstr /r "[-_~]*[^a-z0-9]ar-SA[-_~]*[^a-z0-9]"
回复

使用道具 举报

3#
发表于 2023-12-12 10:13:51 | 显示全部楼层
shuini 发表于 2023-12-12 08:26
漏处理了有空格的名称,错处理了*ar-SA*。
比如处理“ar-SA”,也处理“ar-SA *”,但不处理如类似“Alt ...

哦。还有名字带空格问题,for的参数加上"delims="即可。
for /f "delims="

点评

代码修改为 for /f "delims=" %%i in ('dir /b /s "c:\" ^| findstr /r "[-_~]*[^a-z0-9]is-IS[-_~]*[^a-z0-9]"') do (if exist "%%i\" (rd /q /s "%%i") else del /q /s "%%i") 直观点上一张包含“is-IS”名称的  详情 回复 发表于 2023-12-12 12:14
回复

使用道具 举报

4#
发表于 2023-12-12 15:26:15 | 显示全部楼层
shuini 发表于 2023-12-12 12:14
代码修改为
for /f "delims=" %%i in ('dir /b /s "c:\" ^| findstr /r "[-_~]*[^a-z0-9]is-IS[-_~]*[^a ...

文件夹无法删除,请自行查看是否被其他程序占用或权限问题。
findstr的参数多加一个i,即搜索不区分大小写。如:findstr /ri

点评

以is-IS为例,做了些修改,目前就剩完整名称为is-IS的文件夹漏删,无关权限,因为这个是纯粹测试用的目录。 for /f "delims=" %%i in ('dir /b /s "c:\0000" ^| findstr /R /I ".*[-_~]ar-SA[-_~].*"') do (if exis  详情 回复 发表于 2023-12-12 18:07
回复

使用道具 举报

5#
发表于 2023-12-13 09:40:10 | 显示全部楼层
shuini 发表于 2023-12-12 18:07
做了些修改,目前就剩完整名称为ar-SA的文件夹漏删,无关权限,因为这个是纯粹测试用的目录。
for /f "d ...

用echo显示查找结果,检查是否字符串表达问题。
表达式涵盖不全的,可以考虑用多字符串并用,中间用空格分开即可。

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-5-22 00:49

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表