![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-07 19:51 |
共 48,041 主题排行 / 350,128 发帖 / 今日 3 篇 / 48,252 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 求助:这个批处理该如何写? 已解决! |
| 可打印版本 928 / 11 |
| 第1楼 lfplft | 发表于 2008-03-08 18:50 |
| 初级用户 发帖 13 积分 34 | |
|
求助:这个批处理该如何写? 已解决! @echo off
echo 正在清除%1文件,请稍等...... del c:\%1 /f/s/q/a del d:\%1 /f/s/q/a del e:\%1 /f/s/q/a del f:\%1 /f/s/q/a del g:\%1 /f/s/q/a del h:\%1 /f/s/q/a echo 清除完毕! echo. & pause 上面是我试着写的一个批处理,我想实现的功能是:把某个文件拖到这个批处理上,就会自动删除硬盘上的所有同名文件。我主要是在清理病毒时用。但是这里的%1总是被替换成带路径的文件名,于是出错。恳请高手指教! 还有一个问题,我想在执行前提示确认,但是用CHOICE却提示'choice' 不是内部或外部命令,也不是可运行的程序?我应该怎么写? [ Last edited by lfplft on 2008-3-9 at 12:26 AM ] |
|
| 第2楼 learner0 | 发表于 2008-03-08 19:10 |
| 初级用户 发帖 49 积分 108 | |
|
需要引号的特殊字符是:
<space> &()[]{}^=;!'+,`~ 文件路径有空格的要加双引号。 @echo off echo 正在清除%1文件,请稍等...... del "c:\%1" /f/s/q/a del "d:\%1" /f/s/q/a del "e:\%1" /f/s/q/a del "f:\%1" /f/s/q/a del "g:\%1" /f/s/q/a del "h:\%1" /f/s/q/a echo 清除完毕! echo. & pause |
|
| 第3楼 lfplft | 发表于 2008-03-08 19:21 |
| 初级用户 发帖 13 积分 34 | |
|
我现在的问题不是有空格的问题,而是不想要路径,只要文件名就可以了。
|
|
| 第4楼 everest79 | 发表于 2008-03-08 19:28 |
| 金牌会员 发帖 1,127 积分 2,564 | |
|
"drive:\%~nx1"
|
|
| 第5楼 lfplft | 发表于 2008-03-08 20:16 |
| 初级用户 发帖 13 积分 34 | |
|
多谢!多谢!
I服了YOU! 那么,是不是你这个%~nx1就是文件名呢?还是有别的意思?愿闻其详! 多谢指教!积分1点奉上!评分理由:直接解决问题! |
|
| 第6楼 lfplft | 发表于 2008-03-08 21:11 |
| 初级用户 发帖 13 积分 34 | |
|
这是我改过的:
@echo off echo 正在清除"%~nx1"文件,请稍等...... del c:\"%~nx1" /f/s/q/a del d:\"%~nx1" /f/s/q/a del e:\"%~nx1" /f/s/q/a del f:\"%~nx1" /f/s/q/a del g:\"%~nx1" /f/s/q/a del h:\"%~nx1" /f/s/q/a echo 清除完毕! echo. & pause 还有一个问题,我想在执行前提示确认,但是用CHOICE却提示'choice' 不是内部或外部命令,也不是可运行的程序?我应该怎么写? 这是我试写的,不能用,选择语句我不会写。 @echo off echo 即将删除硬盘上所有的"%~nx1"文件! choice /c y /m 确认请按y,否则请关闭窗口。 echo 正在清除"%~nx1"文件,请稍等...... del c:\"%~nx1" /f/s/q/a del d:\"%~nx1" /f/s/q/a del e:\"%~nx1" /f/s/q/a del f:\"%~nx1" /f/s/q/a del g:\"%~nx1" /f/s/q/a del h:\"%~nx1" /f/s/q/a echo 清除完毕! echo. & pause [ Last edited by lfplft on 2008-3-8 at 09:17 PM ] |
|
| 第7楼 suntb | 发表于 2008-03-08 22:57 |
| 高级用户 发帖 277 积分 581 | |
|
'choice' 不是内部或外部命令,说明你机子内没有这个choice程序
可改为 set /p a=确认请按任意键,否则请关闭窗口 |
|
| 第8楼 lfplft | 发表于 2008-03-09 00:25 |
| 初级用户 发帖 13 积分 34 | |
|
好了!好了!我终于弄好了。
@echo off echo 即将删除硬盘上所有的"%~nx1"文件! set /p a=确认请按任意键,否则请关闭窗口。 echo 正在清除"%~nx1"文件,请稍等...... del c:\"%~nx1" /f/s/q/a del d:\"%~nx1" /f/s/q/a del e:\"%~nx1" /f/s/q/a del f:\"%~nx1" /f/s/q/a del g:\"%~nx1" /f/s/q/a del h:\"%~nx1" /f/s/q/a echo 清除完毕! echo. & pause 挺好用的,多谢各位指教! 我刚开始学习批处理,感觉挺有意思的。 多谢!多谢! |
|
| 第9楼 jinlizhpc | 发表于 2008-03-09 02:13 |
| 初级用户 发帖 74 积分 165 | |
|
楼上的不能按任意键开始,只能按回车键开始
@echo off echo 即将删除硬盘上所有的"%~nx1"文件! set /p a=请按确认键开始,否则请关闭窗口。 echo 正在清除"%~nx1"文件,请稍等...... del c:\"%~nx1" /f/s/q/a del d:\"%~nx1" /f/s/q/a del e:\"%~nx1" /f/s/q/a del f:\"%~nx1" /f/s/q/a del g:\"%~nx1" /f/s/q/a del h:\"%~nx1" /f/s/q/a echo 清除完毕! echo. & pause 如果自动执行则: @echo off echo 即将删除硬盘上所有的"%~nx1"文件! echo 正在清除"%~nx1"文件,请稍等...... del c:\"%~nx1" /f/s/q/a del d:\"%~nx1" /f/s/q/a del e:\"%~nx1" /f/s/q/a del f:\"%~nx1" /f/s/q/a del g:\"%~nx1" /f/s/q/a del h:\"%~nx1" /f/s/q/a echo 清除完毕! echo. & pause |
|
| 第10楼 lfplft | 发表于 2008-03-17 16:28 |
| 初级用户 发帖 13 积分 34 | |
Originally posted by jinlizhpc at 2008-3-9 02:13: 不好意思,我没看明白,怎么才能“只能按回车键开始”? |
|
| 第11楼 dslz666 | 发表于 2008-03-18 19:09 |
| 中级用户 发帖 117 积分 233 | |
|
好贴,学习了,,谢谢
|
|
| 第12楼 tempuser | 发表于 2008-03-19 15:56 |
| 高级用户 发帖 261 积分 547 | |
能帮助解释一下吗?Originally posted by jinlizhpc at 2008-3-9 02:13: 拖动一个文件到这个批处理既执行自动删除. 那么请问我拖动的这个文件是作为 %~nx1 的第一个参数吗? 如果不是,%~nx1中的1是什么概念,如果我想拖动多余一个文件该怎么作呢? 另外请教,如果做一个批处理,它里面有两个菜单选项,我希望其中一个菜单能实现以上功能,该如何实现呢? |
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |