中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-05 00:08
48,038 主题排行 / 350,123 发帖 / 今日 0 篇 / 48,251 会员排行
DOS批处理 & 脚本技术(批处理室) » 大侠们帮帮忙,看看这个bat文件是作什么[已解决]
可打印版本  963 / 10
第1楼 txratu 发表于 2007-06-13 21:57
初级用户 发帖 15 积分 30
大侠们帮帮忙,看看这个bat文件是作什么[已解决]
@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楼 tongwandou 发表于 2007-06-13 22:20
初级用户 发帖 50 积分 112
这个BAT就是想删掉你硬盘中所有的exe文件。关于delins=、/f具体用法和%%~dpna指什么?你可以在进入windows后点左下角的开始---->运行,在弹出的对话框中输入cmd,然后按回车,就是键盘上那个拐弯的键。再在弹出的黑色窗口中输入for /?,按下回车,会有详细的说明。
goto :eof就是直接至文件结尾的一个标签。
第3楼 txratu 发表于 2007-06-13 22:45
初级用户 发帖 15 积分 30
谢谢
“delims=xxx - 指分隔符集。这个替换了空格和跳格键的默认分隔符集。”
%%~dpna指什么?
“ %~dI - 仅将 %I 扩充到一个驱动器号
%~pI - 仅将 %I 扩充到一个路径
%~nI - 仅将 %I 扩充到一个文件名”
还是不明白请指教,谢谢
第4楼 tongwandou 发表于 2007-06-13 23:06
初级用户 发帖 50 积分 112
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楼 tongwandou 发表于 2007-06-13 23:10
初级用户 发帖 50 积分 112
你应该是刚学BAT的吧,多看看论坛上前辈们的贴子,多了解一下DOS的基本命令,很快你就会写出不错的BAT来的。共同学习,共同进步。
第6楼 txratu 发表于 2007-06-13 23:29
初级用户 发帖 15 积分 30
%%i

%%a
有什么联系吗?谢谢!
第7楼 txratu 发表于 2007-06-13 23:31
初级用户 发帖 15 积分 30
新手,谢谢
第8楼 wudixin96 发表于 2007-06-14 00:38
银牌会员 发帖 931 积分 1,928
没什么关系。都只是两个变量而已。

倒是%%i 和%1有些关系
第9楼 dikex 发表于 2007-06-14 12:00
高级用户 发帖 366 积分 788
Originally posted by tongwandou at 2007-6-13 10:20 PM:
这个BAT就是想删掉你硬盘中所有的exe文件。关于delins=、/f具体用法和%%~dpna指什么?你可以在进入windows后点左下角的开始---->运行,在弹出的对 ...



这个东西是删除硬盘中所有的在同一目录下存在同名文件夹的exe文件
第10楼 txratu 发表于 2007-06-14 19:52
初级用户 发帖 15 积分 30
自动获取分区下的所有文件夹(包括子文件夹),如果有同名的exe文件就把那个文件夹的属性改回来并删除那个exe文件.
明白啦,谢谢大家
第11楼 tongwandou 发表于 2007-06-15 21:09
初级用户 发帖 50 积分 112
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 ]
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023