中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-05 18:36
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 高手请进!!! 查看 2,360 回复 18
楼 主 高手请进!!! 发表于 2007-08-31 13:37 ·  中国 江西 南昌 电信
初级用户
积分 122
发帖 44
注册 2007-08-30 14:29
18年会员
UID 96186
性别 男
状态 离线
小弟我是一名网吧的网管,批处理方面不算很熟,望各位大侠鼎力相助!
@echo off
:: 删除E盘根目录下指定文件夹之外的其他文件夹和文件
:: test.txt里保存有不带路径的指定文件夹名,一行一条记录
:: 代码和test.txt必须放在E盘之外的分区
:: code by jm 2006-12-25 CMD@XP
for /f "delims=" %%i in ('dir /a /b e:\') do (
set flag=
for /f "delims=" %%j in (“网络游戏”) do if /i "%%i"=="%%j" set flag=1
if not defined flag del /a /f /q "e:\%%i" 2>nul&rd /s /q "e:\%%i" 2>nul
)
pause
我想问的是 for /f "delims=" %%j in (“网络游戏”) 如果我这里有三个参数,网络游戏,bak,score。请问如何设置!
在线等谢谢大家了!~
2 发表于 2007-08-31 13:57 ·  中国 广西 玉林 博白县 电信
金牌会员
★★★★
积分 3,687
发帖 1,467
注册 2005-08-08 12:00
20年会员
UID 44210
状态 离线
我是菜鸟,我
3 发表于 2007-08-31 13:58 ·  中国 香港 腾讯云
银牌会员
★★★
积分 1,928
发帖 931
注册 2007-01-06 11:46
19年会员
UID 75624
性别 男
状态 离线
for /f "delims=" %%j in (“网络游戏 bak score”)

这个意思,还是?
4 发表于 2007-08-31 14:38 ·  中国 云南 昆明 电信
初级用户
★★
积分 134
发帖 50
注册 2006-03-28 13:50
20年会员
UID 52939
状态 离线
应该就是3楼那个意思了。
5 发表于 2007-08-31 15:23 ·  中国 江西 南昌 电信
初级用户
积分 122
发帖 44
注册 2007-08-30 14:29
18年会员
UID 96186
性别 男
状态 离线
这样就可以了吗???
6 发表于 2007-08-31 18:29 ·  中国 江西 南昌 电信
初级用户
积分 122
发帖 44
注册 2007-08-30 14:29
18年会员
UID 96186
性别 男
状态 离线
朋友不行啊!!!
为什么是什么都删啊!!!
我想要的是除了参数外面的文件夹不要删除外
其余的全部删除!
7 发表于 2007-08-31 18:37 ·  中国 香港 腾讯云
银牌会员
★★★
积分 1,928
发帖 931
注册 2007-01-06 11:46
19年会员
UID 75624
性别 男
状态 离线
除了参数外面的文件夹不要删除外


何解?
8 发表于 2007-08-31 18:49 ·  中国 江西 南昌 电信
初级用户
积分 122
发帖 44
注册 2007-08-30 14:29
18年会员
UID 96186
性别 男
状态 离线
我的意思是除了"网络游戏 bak score"这三个文件不要删除外!!
其余的文件全部删除!
但我用for /f "delims=" %%j in (“网络游戏”) 这个命令行的话,那就是删除全部的文件了。
请问应该如何设置!!!
9 发表于 2007-08-31 18:49 ·  中国 江西 南昌 电信
初级用户
积分 122
发帖 44
注册 2007-08-30 14:29
18年会员
UID 96186
性别 男
状态 离线
for /f "delims=" %%j in (“网络游戏 bak score”)是用这个,把我E盘里面的全部东东给删了!!!
请问如何设置!
10 发表于 2007-08-31 18:53 ·  中国 湖南 联通数据上网公共出口
初级用户
积分 48
发帖 24
注册 2007-08-31 17:37
18年会员
UID 96273
性别 男
状态 离线
不知道可以不可以这样,你自己试试:
for /f "tokens=1* delims=," %%i in ("网络游戏,bak,score") do echo %%i %%j %%k

[ Last edited by xxi on 2007-8-31 at 06:55 PM ]
11 发表于 2007-08-31 19:20 ·  中国 江西 南昌 电信
初级用户
积分 122
发帖 44
注册 2007-08-30 14:29
18年会员
UID 96186
性别 男
状态 离线
不行!!!
执行效果一样!!!
12 发表于 2007-08-31 19:51 ·  中国 江西 南昌 电信
初级用户
积分 122
发帖 44
注册 2007-08-30 14:29
18年会员
UID 96186
性别 男
状态 离线
没有人可以帮我解决吗?
13 发表于 2007-08-31 20:14 ·  中国 陕西 西安 电信
铂金会员
★★★★
积分 5,212
发帖 2,478
注册 2007-02-08 23:39
19年会员
UID 79003
性别 男
状态 离线
for %%i in (网络游戏 bak score) do echo %%i
pause

你是网管,系统的帮助应该可以看懂吧?
14 发表于 2007-08-31 21:14 ·  中国 江西 南昌 电信
初级用户
积分 122
发帖 44
注册 2007-08-30 14:29
18年会员
UID 96186
性别 男
状态 离线
按你这样设置的话,那参数就是以文件形式显示了。但我想用固定的字符串形式。
15 发表于 2007-08-31 21:15 ·  中国 江西 南昌 电信
初级用户
积分 122
发帖 44
注册 2007-08-30 14:29
18年会员
UID 96186
性别 男
状态 离线
@echo off
:: 删除E盘根目录下指定文件夹之外的其他文件夹和文件
:: test.txt里保存有不带路径的指定文件夹名,一行一条记录
:: 代码和test.txt必须放在E盘之外的分区
:: code by jm 2006-12-25 CMD@XP
for /f "delims=" %%i in ('dir /a /b e:\') do (
set flag=
if "%%i"==网络游戏 set flag=1
if "%%i"==bak set flag=1
if "%%i"==score set flag=1
if not defined flag del /a /f "e:\%%i" 2>nul&rd /s "e:\%%i" 2>nul
)
pause
一个一个对比也不行!!!
快晕了!
望各位大侠指教·!
论坛跳转: