中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-05 00:59
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 大侠们帮帮忙,看看这个bat文件是作什么[已解决] 查看 965 回复 10
楼 主 大侠们帮帮忙,看看这个bat文件是作什么[已解决] 发表于 2007-06-13 21:57 ·  中国 福建 厦门 电信
初级用户
积分 30
发帖 15
注册 2007-06-13 21:29
19年会员
UID 91233
性别 男
状态 离线
@echo off
for %%i in (c d e f g h i j k l m n o p q r s t u v w z y z) do call :DF %%i
goto :EOF

:DF
for /f "delims=" %%a in ('dir %1:\ /b /ad /s') do (
attrib "%%~dpna" -s -h
del "%%~dpna.exe" /f /q /a 1>nul 2>nul
)
goto :EOF

1、for中的"delims=" 表示什么?
2、/f具体用法?
3、"%%~dpna"、EOF分别指什么?
4、帮解释2个for语句的具体含义?
谢谢!

[ Last edited by txratu on 2007-6-14 at 07:53 PM ]
2 发表于 2007-06-13 22:20 ·  中国 陕西 西安 电信
初级用户
★★
积分 112
发帖 50
注册 2007-04-15 00:59
19年会员
UID 85191
性别 男
状态 离线
这个BAT就是想删掉你硬盘中所有的exe文件。关于delins=、/f具体用法和%%~dpna指什么?你可以在进入windows后点左下角的开始---->运行,在弹出的对话框中输入cmd,然后按回车,就是键盘上那个拐弯的键。再在弹出的黑色窗口中输入for /?,按下回车,会有详细的说明。
goto :eof就是直接至文件结尾的一个标签。
3 发表于 2007-06-13 22:45 ·  中国 福建 厦门 电信
初级用户
积分 30
发帖 15
注册 2007-06-13 21:29
19年会员
UID 91233
性别 男
状态 离线
谢谢
“delims=xxx - 指分隔符集。这个替换了空格和跳格键的默认分隔符集。”
%%~dpna指什么?
“ %~dI - 仅将 %I 扩充到一个驱动器号
%~pI - 仅将 %I 扩充到一个路径
%~nI - 仅将 %I 扩充到一个文件名”
还是不明白请指教,谢谢
4 发表于 2007-06-13 23:06 ·  中国 陕西 西安 电信
初级用户
★★
积分 112
发帖 50
注册 2007-04-15 00:59
19年会员
UID 85191
性别 男
状态 离线
delims=xxx的意思就是以xxx为分隔符,把一行字符分开。具体到这个BAT中,因为他写的是“delims=”,就是把dir命令产生的输出当做一个整体。如果写成“delims=/”,就是在有“/”的地方,把dir命令产生的输出拆开。
%%~dpna,的意思是返回%%a的驱动器号+完整路径+文件名。如c:\windows\system32\sol.exe,这种形式。

[ Last edited by tongwandou on 2007-6-13 at 11:07 PM ]
5 发表于 2007-06-13 23:10 ·  中国 陕西 西安 电信
初级用户
★★
积分 112
发帖 50
注册 2007-04-15 00:59
19年会员
UID 85191
性别 男
状态 离线
你应该是刚学BAT的吧,多看看论坛上前辈们的贴子,多了解一下DOS的基本命令,很快你就会写出不错的BAT来的。共同学习,共同进步。
6 发表于 2007-06-13 23:29 ·  中国 福建 厦门 电信
初级用户
积分 30
发帖 15
注册 2007-06-13 21:29
19年会员
UID 91233
性别 男
状态 离线
%%i

%%a
有什么联系吗?谢谢!
7 发表于 2007-06-13 23:31 ·  中国 福建 厦门 电信
初级用户
积分 30
发帖 15
注册 2007-06-13 21:29
19年会员
UID 91233
性别 男
状态 离线
新手,谢谢
8 发表于 2007-06-14 00:38 ·  中国 浙江 衢州 中移铁通
银牌会员
★★★
积分 1,928
发帖 931
注册 2007-01-06 11:46
19年会员
UID 75624
性别 男
状态 离线
没什么关系。都只是两个变量而已。

倒是%%i 和%1有些关系
9 发表于 2007-06-14 12:00 ·  中国 广东 广州 电信
高级用户
★★★
潜水修练批处理
积分 788
发帖 366
注册 2006-12-31 02:43
19年会员
UID 75048
性别 男
状态 离线
Originally posted by tongwandou at 2007-6-13 10:20 PM:
这个BAT就是想删掉你硬盘中所有的exe文件。关于delins=、/f具体用法和%%~dpna指什么?你可以在进入windows后点左下角的开始---->运行,在弹出的对 ...



这个东西是删除硬盘中所有的在同一目录下存在同名文件夹的exe文件
正在潜水修练的批处理小白
10 发表于 2007-06-14 19:52 ·  中国 福建 厦门 电信
初级用户
积分 30
发帖 15
注册 2007-06-13 21:29
19年会员
UID 91233
性别 男
状态 离线
自动获取分区下的所有文件夹(包括子文件夹),如果有同名的exe文件就把那个文件夹的属性改回来并删除那个exe文件.
明白啦,谢谢大家
11 发表于 2007-06-15 21:09 ·  中国 陕西 西安 电信
初级用户
★★
积分 112
发帖 50
注册 2007-04-15 00:59
19年会员
UID 85191
性别 男
状态 离线
Originally posted by dikex at 2007-6-14 12:00 PM:



这个东西是删除硬盘中所有的在同一目录下存在同名文件夹的exe文件



是我看的不仔细,我认错。这个是删除与同层文件夹同名的EXE文件的。我也学习了,谢谢!!

[ Last edited by tongwandou on 2007-6-15 at 09:25 PM ]
论坛跳转: