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

[文本处理] [已解决]批处理怎么从键盘输入一个值然后赋值给变量X?

要求如下:
想写一个批处理,运行后具有菜单式的效果显示,然后提示用户选择选项[1,2,3],再按相应输入的值进行处理操作:比如
1: 安装xp系统
2: 硬盘分区
3: 拷贝文件到c:\

代码如下:
  1. @echo off
  2. @echo------------------------------
  3. @echo1: 安装xp系统
  4. @echo2: 硬盘分区
  5. @echo3: 拷贝文件到c:\
  6. @echo------------------------------
  7. cd\
  8. @echo 请选择选项[1-3]:%X
  9. if X='1' goto A
  10. :A
  11. ...
  12. goto end
  13. if X='2' goto B
  14. :B
  15. ...
  16. goto end
  17. if X='3' goto C
  18. :C
  19. ...
  20. goto end
  21. :end
  22. pause
复制代码
请问这里的X怎么从键盘接受后赋值给变量?我写的%X不能用,直接显示在屏上了。。
我怀疑下面两条语句语法有问题。想必是对变量赋值有问题。请高手帮忙改正。
@echo 请选择选项[1-3]:%X
if X='1' goto A  

[ 本帖最后由 nomiren 于 2010-9-27 15:32 编辑 ]
1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

  1. @echo off
  2. echo ------------------------------
  3. echo 1: 安装xp系统
  4. echo 2: 硬盘分区
  5. echo 3: 拷贝文件到c:\
  6. echo ------------------------------
  7. cd\
  8. set /p X=请选择选项[1-3]:
  9. if %X% -equ 1 (
  10.     goto :A
  11. ) else if %X% -equ 2 (
  12.     goto :B
  13. ) else if %X% -equ 3 (
  14.     goto :C
  15. )
  16. goto :end
  17. :A
  18. ...
  19. goto :end
  20. :B
  21. ...
  22. goto :end
  23. :C
  24. ...
  25. goto :end
  26. :end
复制代码
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

thanks for support.
修改了你的代码。
%X% -equ 1 改成 %X%==1
%X% -equ 2 改成 %X%==2
%X% -equ 3 改成 %X%==3

就可以工作了。

再次感谢。

TOP

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. echo ------------------------------
  4. echo 1: 安装xp系统
  5. echo 2: 硬盘分区
  6. echo 3: 拷贝文件到c:\
  7. echo ------------------------------
  8. set key_1=A
  9. set key_2=B
  10. set key_3=C
  11. set /p inp="输入一个选项:"
  12. if defined key_%inp% (goto :!key_%inp%!) else (echo 选项不存在)
  13. :A
  14.   echo 安装Xp
  15.   goto end
  16. :B
  17.   echo 硬盘分区
  18.   goto end
  19. :C
  20.   echo 拷贝文件到c:\
  21.   goto end
  22. :end
  23. pause
  24. exit
复制代码
1

评分人数

TOP

原帖由 523066680 于 2010-9-27 15:42 发表
@echo off
setlocal enabledelayedexpansion
echo ------------------------------
echo 1: 安装xp系统
echo 2: 硬盘分区
echo 3: 拷贝文件到c:\
echo ------------------------------

set key_1= ...


set /p inp="输入一个选项:"
if defined key_%inp% (goto !key_%inp%!) else (echo 选项不存在
goto end)
少掉这一句运行有点问题。
感谢你的回复。不错。还有出错提示功能。thks.

TOP

回复 5楼 的帖子

哦 ,没想到的说。我粗心啦……

上面那个方法就是选项多的时候比较直观
而且判断输入的选项是否存在也交给了cmd判断。

TOP

返回列表