本帖最后由 CrLf 于 2014-11-23 18:03 编辑
getc.com 和功能相似的 getch.com 的区别在于 getc.com 把接收的字符显示在 StdIn 中,而不通过返回值与 cmd 交互
好处是更直观和简短,缺点是这样就不能使用返回值特有的 %=ExitCode% %=ExitCodeAscii% 变量了 | @echo off | | | | echo>getc.com ,RP_4P0E`0Eb@@3!= //getc.com 内嵌方案 | | for /f "delims=" %%a in ('"getc&getc&getc&getc&getc&getc&getc&getc"') do ( | | echo 您输入的是 "%%a" | | ) | | | | | | | | del /f getc.com>nul | | | | | | pauseCOPY |
debug 汇编指令: | debug getc.com | | a | | sub al,52 | | push ax | | pop di | | xor al,50 | | xor [di+60],al | | xor [di+62],al | | inc ax | | inc ax | | db 33 21 3d | | | | rcx | | 11 | | w | | qCOPY |
汇编原型:
-------------------------------------------------------------
另附仅长 11 个字节的精简版: | @echo off | | | | for /f "delims=U" %%a in ('cmd /u /c echo 唉')do set "Tab字符=%%a" | | | | | | echo VX0L%Tab%..瓮廾>getc.com | | | | | | for /f "delims=" %%a in ('getc.com') do echo Char="%%a" | | pauseCOPY |
|