中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 怎样才能实现"Y"和"N"的功能?谢谢了
作者:
标题: 怎样才能实现"Y"和"N"的功能?谢谢了 上一主题 | 下一主题
liuzhigao
新手上路





积分 8
发帖 3
注册 2007-10-10
状态 离线
『楼 主』:  怎样才能实现"Y"和"N"的功能?谢谢了

由于帖子标题限制了,
不能表达清楚,
我现在有一个自己刚写的文件,
自己什么也不懂,刚接触批处理,
所以有些功能没法实现,
现请各位帮忙看一下,
要怎样才能实现这样的功能?
功能:删除驱动包时让它提示是否删除,
如果删除的话,请按"Y",否则按"N",
还有一个主要的是,不管删不删除,
在按了"Y"或是"N"以后都要把批处理本身给删除掉!
而我现在写的这个呢只能是在确定删除驱动包的时候才能把批处理本身给删除了,
如果不删除驱动包的话,那就没法了,就得手动删除!


如下是我的文件里的内容,请各位帮忙看一下,谢了
title liuzhigao个人设置程序
@echo off
@del "c:\Documents and Settings\all users\桌面\windows media player.lnk"
echo.
@del "c:\drivers\chipsets.exe"
@del "c:\drivers\Display.exe"
@del "c:\drivers\Ethernet.exe"
@del "c:\drivers\Integrated.exe"
@del "c:\drivers\Sound.exe"
@del "c:\drivers\srsdrv.exe"
echo.
echo.
echo 必看:(操作前必看!)
echo.
echo 接下来的操作将删除驱动包,位于C:\drivers!
echo.
echo 在所有驱动已安装好且确定删除此驱动包的话!
echo.
echo 请按任意键(建议删除此驱动包,因为其容量会占用C盘大量空间)!
echo.
echo 如驱动还未安装完毕!
echo.
echo 请先最小化此窗口,待驱动安装完毕后再继续此后的操作!
echo.
echo 如不想删除此驱动包!在关闭此窗口后手动删除下面的文件:
echo.
echo C:\Documents and Settings\All Users\「开始」菜单\程序\启动\123.bat
echo.
pause
@rd "c:\drivers" /q/s
echo.
echo 驱动包已成功删除,按任意键退出此程序!
@del "C:\Documents and Settings\All Users\「开始」菜单\程序\启动\123.bat"
echo.
echo.
pause


2007-10-10 19:51
查看资料  发送邮件  发短消息 网志  OICQ (5687663)  编辑帖子  回复  引用回复
Nickey
初级用户




积分 132
发帖 59
注册 2007-8-23
来自 GuangZhou
状态 离线
『第 2 楼』:  

你这里没有“Y”&"N"啊
在最后加
del /f /s /q 文件名
不可以吗?

2007-10-10 20:01
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (375600651)  编辑帖子  回复  引用回复
liuzhigao
新手上路





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

是的,我的里边没有,
看来楼上的不是很明白我的意思,

我的意思是删除驱动的话,按一下Y,就删除了,不删除的话按N退出,也就是同意与不同意的意思,

不过这两个过程后面接着要完成一件事,就是把批处理本身删除了

2007-10-10 22:27
查看资料  发送邮件  发短消息 网志  OICQ (5687663)  编辑帖子  回复  引用回复
liuzhigao
新手上路





积分 8
发帖 3
注册 2007-10-10
状态 离线
『第 4 楼』:  



  Quote:
Originally posted by wudixin96 at 2007-10-10 10:38 PM:
rd /s即可。不要带/Q开关就行了。

删除本身就是del /q /f %0

那我上面那个命令现在只能是在确定删除驱动包的情况下才能自我删除,能不能让它在不删除驱动包的情况下也把批处理自身也删除了?

2007-10-11 10:34
查看资料  发送邮件  发短消息 网志  OICQ (5687663)  编辑帖子  回复  引用回复
HAT
版主





积分 9023
发帖 5017
注册 2007-5-31
状态 离线
『第 5 楼』:  

楼主可以参考一下这段脚本
@echo off
rem 在屏幕右下角显示/隐藏星期

:input
echo Do you want to display the week(Y/N)?
set /p flag=
if %flag% == y (
  goto :display
) else if %flag% == Y (
  goto :display
) else if %flag% == n (
  goto :hide
) else if %flag% == N (
  goto :hide
) else goto :input

:display
reg add "HKEY_CURRENT_USER\Control Panel\International" /v sLongDate /t REG_SZ /d "dddd, MMMM dd, yyyy" /f>nul
goto :end

:hide
reg add "HKEY_CURRENT_USER\Control Panel\International" /v sLongDate /t REG_SZ /d "MMMM dd, yyyy" /f>nul
goto :end

:end
rem 删除批处理本身
del %0


2007-10-11 11:21
查看资料  发短消息 网志   编辑帖子  回复  引用回复
不得不爱
超级版主

我爱DOS


积分 5310
发帖 2044
注册 2005-9-26
来自 四川南充
状态 离线
『第 6 楼』:  

看下面的可以吗?
title liuzhigao个人设置程序
@echo off
del "c:\Documents and Settings\all users\桌面\windows media player.lnk"
echo.
del "c:\drivers\chipsets.exe"
del "c:\drivers\Display.exe"
del "c:\drivers\Ethernet.exe"
del "c:\drivers\Integrated.exe"
del "c:\drivers\Sound.exe"
del "c:\drivers\srsdrv.exe"
echo.
echo.
echo 必看:(操作前必看!)
echo.
echo 接下来的操作将删除驱动包,位于C:\drivers!
echo.
echo 在所有驱动已安装好且确定删除此驱动包的话!
echo.
echo 请按y删除此驱动包(建议删除此驱动包,因为其容量会占用C盘大量空间)!
echo.
echo 如驱动还未安装完毕!
echo.
echo 请先最小化此窗口,待驱动安装完毕后再继续此后的操作!
echo.
echo 如不想删除此驱动包!请按N或者任意键
echo.
set/p a=按Y删除此驱动包,按N或者任意键不删除此驱动包
if /i not %a%.=y. goto a
rd "c:\drivers" /q/s
echo.
echo 驱动包已成功删除,按任意键退出此程序!
echo.
echo.
pause
:a
del /q %0




我的网络U盘 我的网络第2个U盘
论坛软件下载链接
灵雨飘零论坛  
论坛新手必读,所有人的基本行为准则
刷QQ空间人气、留言的小软件
2007-10-11 11:26
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
不得不爱
超级版主

我爱DOS


积分 5310
发帖 2044
注册 2005-9-26
来自 四川南充
状态 离线
『第 7 楼』:  

set /P是多此一举吗?
如果是rd "c:\drivers" /s 在执行时会提示  c:\drivers,是否确认(Y/N)? 这个意思没有set/p的提示好懂啊!



我的网络U盘 我的网络第2个U盘
论坛软件下载链接
灵雨飘零论坛  
论坛新手必读,所有人的基本行为准则
刷QQ空间人气、留言的小软件
2007-10-11 16:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

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


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



论坛跳转: