标题: [系统相关] [已解决]bat如何实现:本地硬盘某个分区下面,删除满足某个特定要求的目录? [打印本页]
作者: ygqiang 时间: 2015-3-31 00:16 标题: [已解决]bat如何实现:本地硬盘某个分区下面,删除满足某个特定要求的目录?
本帖最后由 ygqiang 于 2015-3-31 01:25 编辑
[已解决]bat如何实现:本地硬盘某个分区下面,删除满足某个特定要求的目录?
特定目录的路径,不是固定的。
特定目录名字,也不是固定的。目录名字里面含有的关键字是:隐藏-全
下面的bat代码,如何修改才能实现呢?- echo 本地磁盘:
- for %%a in (D E F G H I J K L M N O P Q R S T U V W X Y Z) do (
- fsutil fsinfo drivetype %%a: | find "固定">nul && (echo %%a) && (
-
- del /f /s /q /a ""%%a:\000\隐藏-全\*.*" >nul 2>nul
- rd /s /q "%%a:\000\隐藏-全" >nul 2>nul
-
- for %%b in ("*隐藏-全*") do (
- del /f /s /q /a ""%%a:\%%b\*.*" >nul 2>nul
- rd /s /q "%%a:\%%b" >nul 2>nul
- )
-
- )
- )
复制代码
作者: pcl_test 时间: 2015-3-31 00:57
本帖最后由 pcl_test 于 2015-3-31 08:22 编辑
回复 1# ygqiang
文件夹相互嵌套构成路径,既然路径不定,文件夹名不定,只知道包含特定关键字,那么只能用遍历所有分区及文件夹来匹配
那么可以dir /ad /s /b 盘符:\*隐藏-全*
作者: ygqiang 时间: 2015-3-31 01:09
本帖最后由 ygqiang 于 2015-3-31 01:23 编辑
回复 ygqiang
文件夹相互嵌套构成路径,既然路径不定,文件夹名不定,只知道包含特定关键字,那么只能用 ...
pcl_test 发表于 2015-3-31 00:57
多谢。。。。帮忙看看这个代码,是否有问题。。。。- echo 本地磁盘:
- for %%a in (D E F G H I J K L M N O P Q R S T U V W X Y Z) do (
- fsutil fsinfo drivetype %%a: | find "固定">nul && (echo %%a) && (
-
-
- for /f "delims=" %%b in ('dir /ad /s /b "%%a:/*隐藏-全*"') do (
- echo %%b
- del /f /s /q /a "%%b\*.*" >nul 2>nul
- rd /s /q "%%b" >nul 2>nul
- )
-
- )
- )
复制代码
作者: DAIC 时间: 2015-3-31 08:18
回复 3# ygqiang
你亲自测试一下吧,如果发现问题再回来问。
作者: ygqiang 时间: 2015-3-31 13:35
本帖最后由 ygqiang 于 2015-3-31 13:42 编辑
- @echo off
- echo 本地磁盘:
- for %%a in (D E F G H I J K L M N O P Q R S T U V W X Y Z) do (
- fsutil fsinfo drivetype %%a: | find "固定">nul && (
- for /f "tokens=*" %%i in ('dir /s/b/ad "%%a:\*隐藏-全*"') do (
- rd /s/q "%%~si"
- )
- )
- )
复制代码
for /f "tokens=*" %%i in
rd /s/q "%%~si"
for /f "delims=" %%b in
rd /s /q "%%b"
这2个差别主要是:
上面那句可以把引号去掉。如果有引号,两句都可以,如果没有引号,当路径中有空格时,下面那句就会引发错误。
它表示将路径以短路径的方式显示。这在DOS时代为了快速查找目标,将所有的文件(夹)名固定在8个字符以内,超过8个字符的,会以"前6个字符+~%d"的形式显示。
"%%~si"这句等同于%%~si
但"%%b"不等于%%b
保险起见,最好还是用%%~si。因为系统的差别,%%b所返回的路径字符串中可能包含有"号,如果遇到这种情况,那用"%%b"反而会出错了。
当对for的变量进行扩展的时候%%~i会强制将字符串中的引号脱掉。再配合其它属性引用,就能确保你的路径字符串始终是一个合法值。
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |