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

[代码合集] 2个代码任选其一替代choice文件

很多人写脚本时使用set /p获取键盘输入会感到很不方便。
大多情况下会考虑使用choice,但在脚本发布时附带choice下载也不太方便。
于是很多人考虑把choice的替代者以DEBUG代码的形式添加到脚本中。
在这里为大家提供2个短小精悍的choice替代者:
代码一  B8 00 00 CD 16 88 E0 B4 4C CD 21
代码二 cd 16 86 c4 b4 02 cd 10 b4 4C CD 21
以上是两个汇编小程序,都可以实现choice并以%errorlevel%变量返回结果
区别在于:
代码一的返回值为按键的字母代码(例如:按a得到97,按b得到98,按c得到99,方向键没有结果)
代码一的返回值为按键的按键代码(例如:按a得到30,按s得到31,按d得到32.方向键也有结果
---------------------------------------------------------------------------------------------
现在代码有了,讲讲如何使用
方法一:由cmd脚本输出为com程序文件,代码如下:
  1. @echo off&goto begain
  2. e 100 B8 00 00 CD 16 88 E0 B4 4C CD 21
  3. r cx
  4. @注意b是16进制的11,代表B8 00 00 CD 16 88 E0 B4 4C CD 21的长度为11字节,使用时按需修改
  5. b
  6. n sybn.com
  7. w
  8. q
  9. : begain
  10. ::第一次生成com文件
  11. debug<%~dpnx0 >nul
  12. ::以后只需调用sybn命令
  13. sybn
  14. chcp 437 >nul
  15. graftabl 936 >nul
  16. ::然后加入条件语句
复制代码
方法二:脚本自带choice功能,不输出任何文件代码如下:
  1. @echo off&goto begain
  2. e 100 B8 00 00 CD 16 88 E0 B4 4C CD 21
  3. g
  4. : begain
  5. ::每次调用都要执行DEBUG
  6. debug<%~dpnx0 >nul
  7. chcp 437 >nul
  8. graftabl 936 >nul
  9. ::然后加入条件语句
复制代码
--------------------------------------------------------------------------------
注意:以上代码建议去掉注释再执行
chcp和graftabl两行是必须的,用于恢复乱码

[ 本帖最后由 sl543001 于 2009-11-18 17:46 编辑 ]

返回列表