中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-08-08 13:59
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 帮忙改下批处理.. 谢谢! 查看 842 回复 11
楼 主 帮忙改下批处理.. 谢谢! 发表于 2008-05-07 01:39 ·  中国 广东 深圳 电信
初级用户
★★
积分 141
发帖 63
注册 2008-05-06 21:57
18年会员
UID 117935
性别 男
状态 离线
已解决!! 谢谢各位了!!

[ Last edited by ixxxxyou on 2008-5-19 at 11:24 PM ]
本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
HAT -8 2008-11-09 01:42
2 发表于 2008-05-08 00:16 ·  中国 广东 佛山 电信
初级用户
★★
积分 141
发帖 63
注册 2008-05-06 21:57
18年会员
UID 117935
性别 男
状态 离线
这个没人会吗??
3 发表于 2008-05-08 00:23 ·  中国 山东 淄博 联通
银牌会员
★★★
积分 1,604
发帖 646
注册 2008-04-13 23:39
18年会员
UID 115804
性别 男
状态 离线
for %%a in (c d e f g h i j k) do (
if exist %%a:\ (
dir %%a:\ /ad /b /s |findstr /i "found ntuninstall ntservicepackuninstall"
)
)
pause
rem 你的代码我没看,只是根据你的意思来写的。。。。

是不是还要过滤掉移动驱动器?
4 发表于 2008-05-08 03:57 ·  中国 四川 成都 电信
中级用户
★★
积分 297
发帖 135
注册 2006-10-21 12:00
19年会员
UID 67627
性别 男
状态 离线
dir可以指定多个参数,比如
dir /a/s/b C:\FOUND.* C:\$NtUninstall*$ C:\$NtServicePackUninstall*$
5 发表于 2008-05-08 14:25 ·  中国 广东 佛山 禅城区 电信
初级用户
★★
积分 141
发帖 63
注册 2008-05-06 21:57
18年会员
UID 117935
性别 男
状态 离线
Originally posted by zqz0012005 at 2008-5-8 03:57 AM:
dir可以指定多个参数,比如
dir /a/s/b C:\FOUND.* C:\$NtUninstall*$ C:\$NtServicePackUninstall*$



那是不是改为..


fsutil fsinfo drivetype !drive!|find "固定">nul && for /f "delims=" %%a in ('dir /s/ad/b C:\FOUND.* C:\$NtUninstall*$ C:\$NtServicePackUninstall*$') do rd /s /q "%%a"
)


这样对吗?
6 发表于 2008-05-08 14:26 ·  中国 广东 佛山 禅城区 电信
初级用户
★★
积分 141
发帖 63
注册 2008-05-06 21:57
18年会员
UID 117935
性别 男
状态 离线
但 这样改的话不就是只能查C盘了吗?
7 发表于 2008-05-08 14:32 ·  中国 广东 佛山 禅城区 电信
初级用户
★★
积分 141
发帖 63
注册 2008-05-06 21:57
18年会员
UID 117935
性别 男
状态 离线
但是改成这样也不行啊..

@echo off & setlocal enabledelayedexpansion
for /f "delims=\" %%i in ('fsutil fsinfo drives^|find /v ""') do (
set var=%%i
set drive=!var:~-2!
fsutil fsinfo drivetype !drive!|find "固定">nul && for /f "delims=" %%a in ('dir /s/ad/b "!drive!\FOUND.* $NtUninstall*$ $NtServicePackUninstall*$"') do rd /s /q "%%a"
)


提示找不到文件
8 发表于 2008-05-08 16:38 ·  中国 四川 成都 电信
中级用户
★★
积分 297
发帖 135
注册 2006-10-21 12:00
19年会员
UID 67627
性别 男
状态 离线
dir /s/ad/b "!drive!\FOUND.*" "!drive!\$NtUninstall*$" "!drive!\$NtServicePackUninstall*$"
这里的!drive!也不能丢了

引号是不能乱加的,要明白它的作用

搞得我都晕了

[ Last edited by zqz0012005 on 2008-5-8 at 11:25 PM ]
9 发表于 2008-05-08 17:04 ·  中国 江苏 苏州 吴江区 电信
银牌会员
★★★
积分 1,608
发帖 780
注册 2007-10-07 10:19
18年会员
UID 99089
性别 男
状态 离线

@echo off
for %%a in (c d e ) do (
if /i "%%a:"=="%systemdrive%" (cd %%a:\) else (%%a:)
dir/s/b/a FOUND.*
)
pause

要找出全部的固定驱动器更简单,不用那么复杂的
 wmic logicaldisk where drivetype=3 list brief 
10 发表于 2008-05-08 17:40 ·  中国 广东 佛山 电信
初级用户
★★
积分 141
发帖 63
注册 2008-05-06 21:57
18年会员
UID 117935
性别 男
状态 离线
Originally posted by zqz0012005 at 2008-5-8 04:38 PM:
dir /s/ad/b "!drive!\FOUND.* !drive!\$NtUninstall*$ !drive!\$NtServicePackUninstall*$"
这里的!drive!也不能丢了



改行这样后提示 : 文件名、目录名或卷标语法不正确。

@echo off & setlocal enabledelayedexpansion
for /f "delims=\" %%i in ('fsutil fsinfo drives^|find /v ""') do (
set var=%%i
set drive=!var:~-2!
fsutil fsinfo drivetype !drive!|find "固定">nul && for /f "delims=" %%a in ('dir /s/ad/b "!drive!\FOUND.* !drive!\$NtUninstall*$ !drive!\$NtServicePackUninstall*$"') do rd /s /q "%%a"
)
11 发表于 2008-05-08 23:26 ·  中国 四川 成都 电信
中级用户
★★
积分 297
发帖 135
注册 2006-10-21 12:00
19年会员
UID 67627
性别 男
状态 离线
再把4楼和8楼看清楚,动手之前多思考
12 发表于 2008-05-09 00:22 ·  中国 广东 佛山 电信
初级用户
★★
积分 141
发帖 63
注册 2008-05-06 21:57
18年会员
UID 117935
性别 男
状态 离线
终于搞明白了!!! 万分感谢楼上的大哥!! 谢谢了!
论坛跳转: