[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[其他] 批处理怎样实现选择性操作?

最近写了一个操作系统的服务自动优化批处理,
但由于用户的需求不一 ,不能对所有用户的服务一概而论,所以,我想在批处理实现的过程中让用户有选择性的开启或关闭一些服务。

比如有些用户有打印机,有些没有,
有些用户有扫描仪或摄像头之类的图像设备,而有些却不需要。

我的想法是,在批处理执行的过程中显示提醒信息,比如:
您是否拥有打印机或其他打印设备?
若有,请按Y
若无,请按N

按Y执行
sc config spooler start= auto

按N执行
sc config spooler start= disabled

选择完毕后继续执行下一条。

请高手指教!

本帖最后由 plp626 于 2011-6-16 00:23 编辑
  1. @echo off
  2. :loop
  3. echo 按Y执行spooler start= auto[Y^|N]:
  4. sc /?|find "Win32" >nul&&goto:auto
  5. echo N: spooler start= disabled
  6. sc config spooler start= disabled
  7. goto:loop
  8. :auto
  9. echo Y: spooler start= auto
  10. sc config spooler start= auto
  11. goto:loop
复制代码

TOP

  1. echo [Y^|N]
  2. sc /?|(find "Win32" >nul&&echo 选择Y后,执行这里,你可以跳转到你要执行的模块)
复制代码

TOP

也可以用第三方工具

  1. @echo off
  2. choice /m 你有没有打印设备阿
  3. if %errorlevel%==2 (echo N-换成你要执行的命令)
  4. if %errorlevel%==1 (echo Y-同上)
  5. echo 其他命令
  6. pause
复制代码
Choice 从这里下载
http://bbs.bathome.net/viewthread.php?tid=2245

TOP

看看这是不是你想要的结果
  1. @echo off
  2. :services
  3. echo 你即将对打印服务进行处理,请确定你 “是”“否” 使用打印机。
  4. set /p yn="《请输入 Y 或 N》"
  5. if %yn%==y goto auto
  6. if %yn%==Y goto auto
  7. if %yn%==n goto dis
  8. if %yn%==N goto dis
  9. cls
  10. echo "输入错误,请重新输入!"
  11. goto services
  12. :auto
  13. sc config "spooler" start= AUTO
  14. goto end
  15. :dis
  16. sc config "spooler" start= DISABLED
  17. :end
复制代码

[ 本帖最后由 cd309420 于 2008-12-12 10:37 编辑 ]

TOP

给个示例吧:
  1. @echo off
  2. set /p select=请选择是继续还是退出(y:继续,n:退出)&cls
  3. if /i "%select%" equ "y" (
  4.    goto contin
  5.    ) else (
  6.    if /i "%select%" equ "n" goto :eof
  7. )
  8. echo 程序已暂停&pause>nul
  9. :contin
  10. echo 程序继续进行&pause>nul
复制代码
***共同提高***

TOP

返回列表