中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 求助:这个批处理该如何写? 已解决!
作者:
标题: 求助:这个批处理该如何写? 已解决! 上一主题 | 下一主题
lfplft
初级用户





积分 34
发帖 13
注册 2007-3-2
状态 离线
『楼 主』:  求助:这个批处理该如何写? 已解决!

@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 ]

2008-3-8 18:50
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
learner0
初级用户





积分 108
发帖 49
注册 2008-2-26
状态 离线
『第 2 楼』:  

需要引号的特殊字符是:
     <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

2008-3-8 19:10
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
lfplft
初级用户





积分 34
发帖 13
注册 2007-3-2
状态 离线
『第 3 楼』:  

我现在的问题不是有空格的问题,而是不想要路径,只要文件名就可以了。

2008-3-8 19:21
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
everest79
金牌会员

一叶枝头,万树皆春



积分 2564
发帖 1127
注册 2006-12-25
状态 离线
『第 4 楼』:  

"drive:\%~nx1"

   此帖被 +1 点积分    点击查看详情   
评分人:【 lfplft 分数: +1  时间:2008-3-8 20:14




49206C6F766520796F752067757973 54656C3A3133383238343036373837
2008-3-8 19:28
查看资料  发短消息 网志   编辑帖子  回复  引用回复
lfplft
初级用户





积分 34
发帖 13
注册 2007-3-2
状态 离线
『第 5 楼』:  

多谢!多谢!
I服了YOU!
那么,是不是你这个%~nx1就是文件名呢?还是有别的意思?愿闻其详!
多谢指教!积分1点奉上!评分理由:直接解决问题!

2008-3-8 20:16
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
lfplft
初级用户





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

这是我改过的:
@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 ]

2008-3-8 21:11
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
suntb
高级用户





积分 581
发帖 277
注册 2006-12-23
状态 离线
『第 7 楼』:  

'choice' 不是内部或外部命令,说明你机子内没有这个choice程序

可改为

set /p a=确认请按任意键,否则请关闭窗口

   此帖被 +1 点积分    点击查看详情   
评分人:【 lfplft 分数: +1  时间:2008-3-9 00:21


2008-3-8 22:57
查看资料  发短消息 网志   编辑帖子  回复  引用回复
lfplft
初级用户





积分 34
发帖 13
注册 2007-3-2
状态 离线
『第 8 楼』:  

好了!好了!我终于弄好了。
@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
挺好用的,多谢各位指教!
我刚开始学习批处理,感觉挺有意思的。
多谢!多谢!

2008-3-9 00:25
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
jinlizhpc
初级用户




积分 165
发帖 74
注册 2007-1-8
状态 离线
『第 9 楼』:  

楼上的不能按任意键开始,只能按回车键开始
@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

2008-3-9 02:13
查看资料  发短消息 网志   编辑帖子  回复  引用回复
lfplft
初级用户





积分 34
发帖 13
注册 2007-3-2
状态 离线
『第 10 楼』:  



  Quote:
Originally posted by jinlizhpc at 2008-3-9 02:13:
楼上的不能按任意键开始,只能按回车键开始
@echo off
  echo 即将删除硬盘上所有的"%~nx1"文件!
  set /p a=请按确认键开始,否则请关闭窗口。 ...

不好意思,我没看明白,怎么才能“只能按回车键开始”?

2008-3-17 16:28
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
dslz666
中级用户





积分 233
发帖 117
注册 2007-11-28
状态 离线
『第 11 楼』:  

好贴,学习了,,谢谢

2008-3-18 19:09
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
tempuser
高级用户





积分 547
发帖 261
注册 2006-4-15
状态 离线
『第 12 楼』:  能帮助解释一下吗?



  Quote:
Originally posted by jinlizhpc at 2008-3-9 02:13:
楼上的不能按任意键开始,只能按回车键开始
@echo off
  echo 即将删除硬盘上所有的"%~nx1"文件!
  set /p a=请按确认键开始,否则请关闭窗口。 ...

拖动一个文件到这个批处理既执行自动删除.

那么请问我拖动的这个文件是作为
%~nx1
的第一个参数吗?
如果不是,%~nx1中的1是什么概念,如果我想拖动多余一个文件该怎么作呢?
另外请教,如果做一个批处理,它里面有两个菜单选项,我希望其中一个菜单能实现以上功能,该如何实现呢?

2008-3-19 15:56
查看资料  发短消息 网志   编辑帖子  回复  引用回复

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


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



论坛跳转: