中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 大侠们帮帮忙,看看这个bat文件是作什么[已解决]
作者:
标题: 大侠们帮帮忙,看看这个bat文件是作什么[已解决] 上一主题 | 下一主题
txratu
初级用户





积分 30
发帖 15
注册 2007-6-13
状态 离线
『楼 主』:  大侠们帮帮忙,看看这个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 ]

2007-6-13 21:57
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
tongwandou
初级用户





积分 112
发帖 50
注册 2007-4-15
状态 离线
『第 2 楼』:  

这个BAT就是想删掉你硬盘中所有的exe文件。关于delins=、/f具体用法和%%~dpna指什么?你可以在进入windows后点左下角的开始---->运行,在弹出的对话框中输入cmd,然后按回车,就是键盘上那个拐弯的键。再在弹出的黑色窗口中输入for /?,按下回车,会有详细的说明。
goto :eof就是直接至文件结尾的一个标签。

2007-6-13 22:20
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
txratu
初级用户





积分 30
发帖 15
注册 2007-6-13
状态 离线
『第 3 楼』:  

谢谢
“delims=xxx      - 指分隔符集。这个替换了空格和跳格键的默认分隔符集。”
%%~dpna指什么?
“ %~dI        - 仅将 %I 扩充到一个驱动器号
%~pI        - 仅将 %I 扩充到一个路径
%~nI        - 仅将 %I 扩充到一个文件名”
还是不明白请指教,谢谢

2007-6-13 22:45
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
tongwandou
初级用户





积分 112
发帖 50
注册 2007-4-15
状态 离线
『第 4 楼』:  

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 ]

2007-6-13 23:06
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
tongwandou
初级用户





积分 112
发帖 50
注册 2007-4-15
状态 离线
『第 5 楼』:  

你应该是刚学BAT的吧,多看看论坛上前辈们的贴子,多了解一下DOS的基本命令,很快你就会写出不错的BAT来的。共同学习,共同进步。

2007-6-13 23:10
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
txratu
初级用户





积分 30
发帖 15
注册 2007-6-13
状态 离线
『第 6 楼』:  

%%i

%%a
有什么联系吗?谢谢!

2007-6-13 23:29
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
txratu
初级用户





积分 30
发帖 15
注册 2007-6-13
状态 离线
『第 7 楼』:  

新手,谢谢

2007-6-13 23:31
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
wudixin96
银牌会员





积分 1928
发帖 931
注册 2007-1-6
状态 离线
『第 8 楼』:  

没什么关系。都只是两个变量而已。

倒是%%i 和%1有些关系

2007-6-14 00:38
查看资料  发短消息 网志   编辑帖子  回复  引用回复
dikex
高级用户

潜水修练批处理



积分 788
发帖 366
注册 2006-12-31
状态 离线
『第 9 楼』:  



  Quote:
Originally posted by tongwandou at 2007-6-13 10:20 PM:
这个BAT就是想删掉你硬盘中所有的exe文件。关于delins=、/f具体用法和%%~dpna指什么?你可以在进入windows后点左下角的开始---->运行,在弹出的对 ...

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



正在潜水修练的批处理小白
2007-6-14 12:00
查看资料  发短消息 网志   编辑帖子  回复  引用回复
txratu
初级用户





积分 30
发帖 15
注册 2007-6-13
状态 离线
『第 10 楼』:  

自动获取分区下的所有文件夹(包括子文件夹),如果有同名的exe文件就把那个文件夹的属性改回来并删除那个exe文件.
明白啦,谢谢大家

2007-6-14 19:52
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
tongwandou
初级用户





积分 112
发帖 50
注册 2007-4-15
状态 离线
『第 11 楼』:  



  Quote:
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 ]

2007-6-15 21:09
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: