高手解释下批处理全运行
@echooffechoexit|%ComSpec%/kprompte100B400B012CD10B003CD10CD20$_g$_q$_|debug>nulchcp4...
@echo off
echo exit|%ComSpec% /k prompt e 100 B4 00 B0 12 CD 10 B0 03 CD 10 CD 20 $_g$_q$_|debug>nul
chcp 437>nul
graftabl 936>nul
::下面写上命令
pasue
这是批处理全屏运行的
请高手解释下
我是刚学的. 展开
echo exit|%ComSpec% /k prompt e 100 B4 00 B0 12 CD 10 B0 03 CD 10 CD 20 $_g$_q$_|debug>nul
chcp 437>nul
graftabl 936>nul
::下面写上命令
pasue
这是批处理全屏运行的
请高手解释下
我是刚学的. 展开
1个回答
展开全部
@echo off
echo exit|%ComSpec% /k prompt e 100 B4 00 B0 12 CD 10 B0 03 CD 10 CD 20 $_g$_q$_|debug>nul
chcp 437>nul
graftabl 936>nul
这是相当高手才写得出来的吧,懂这个的人都不上百度....
我也看不懂.
把我看得懂的说一下吧.
echo exit 本是显示EXIT,但这里EXIT还有一堆东西,所以也搞不懂了
特别是那个|号,不懂干嘛用! 本来是PIPE,但我看不懂这种用法.两个PIPE!!
%comspec% /k 其实是调用 cmd /k ,
prompt e 100 B4 00 B0 12 CD 10 B0 03 CD 10 CD 20 $_g$_q$_
这段是改变命令提示符,默认的是C:\ 这样. 他改成了
e 100 B4 00 B0 12 CD 10 B0 03 CD 10 CD 20
g
q
可以看出 $_是回车
估计这段要当作参数传递给 debug 命令.
研究了一下,好像是把 exit PIPE 给 %comspec%,于是,再运行完
%ComSpec% /k prompt e 100 B4 00 B0 12 CD 10 B0 03 CD 10 CD 20 $_g$_q$_
之后, 马上又运行了. EXIT,回到原来的命令提示符, 提示符恢复为C:\ 的形式.
第二个|则是把
e 100 B4 00 B0 12 CD 10 B0 03 CD 10 CD 20
g
q
这段 PIPE给DUBUG 命令. 对DUBUG我是一点都不懂,不知道它作了什么. 好像运行后进入全屏的命令提示符.
经实验. 将
e 100 B4 00 B0 12 CD 10 B0 03 CD 10 CD 20
g
q
存成 文本文件 1.txt
再用命令 debug < 1.txt 将达到进入全屏的同样效果. 作者只是巧妙的利用prompt 命令, 来避免了写到文本的麻烦.(这样,就算不可写,也一样能运行)
chcp 437>nul 是把控制台代码页换成英语美国
而且隐藏了成功的提示. 失败的话还是会提示.
graftabl 936>nul
则是把代码页扩展字符的监视器显示 更成中文. 同样 用> NUL 隐藏了输出.
具体怎么回事我也不懂,我只懂要显示英文提示的时候用chcp 437, 从未用过 graftale
参考:
Graftabl
启用可在图形模式下显示扩展字符集的功能。
要点•
此工具在基于 Itanium 的版本的 Windows 操作系统中不可用。
•
此工具在基于 x64 的版本的 Windows 操作系统中不可用。
语法
graftabl [xxx] [/status]
参数
xxx
指定要以图形模式显示扩展字符的代码页。下表列出了每个有效的代码页标识号及其国家(地区)或语言。
值 国家(地区)
437
美国
850
多语言(拉丁文 I)
852
斯拉夫语(拉丁文 II)
855
西里尔文(俄语)
857
土耳其语
860
葡萄牙语
861
冰岛语
863
加拿大 - 法语
865
日耳曼语
866
俄语
869
现代希腊语
/status
标识 graftabl 正在使用的代码页。
/?
在命令提示符下显示帮助。
注释•
有关使用代码页的信息,请参阅“相关主题”中的 chcp 或 mode(设置设备代码页)。
•
Graftabl 不更改控制台输入代码页。Graftabl 只影响指定代码页扩展字符的监视器显示。要更改正在使用的代码页,请使用 mode 或 chcp 命令。
•
了解 graftabl 退出码
下表列出了每个退出码及其简单描述。
退出码 描述
0
已成功装载字符集。未装载过去的代码页。
1
指定了错误的参数。没有采取任何措施。
2
发生文件错误。
•
可以在批处理程序的 if 命令行上使用 ErrorLevel 参数来处理由 graftabl 返回的退出码。
示例
要将代码页 437(美国)的图形字符集加载到内存中,请键入:
Graftabl 437
要将代码页 850(多语言)的图形字符集加载到内存中,请键入:
Graftabl 850
echo exit|%ComSpec% /k prompt e 100 B4 00 B0 12 CD 10 B0 03 CD 10 CD 20 $_g$_q$_|debug>nul
chcp 437>nul
graftabl 936>nul
这是相当高手才写得出来的吧,懂这个的人都不上百度....
我也看不懂.
把我看得懂的说一下吧.
echo exit 本是显示EXIT,但这里EXIT还有一堆东西,所以也搞不懂了
特别是那个|号,不懂干嘛用! 本来是PIPE,但我看不懂这种用法.两个PIPE!!
%comspec% /k 其实是调用 cmd /k ,
prompt e 100 B4 00 B0 12 CD 10 B0 03 CD 10 CD 20 $_g$_q$_
这段是改变命令提示符,默认的是C:\ 这样. 他改成了
e 100 B4 00 B0 12 CD 10 B0 03 CD 10 CD 20
g
q
可以看出 $_是回车
估计这段要当作参数传递给 debug 命令.
研究了一下,好像是把 exit PIPE 给 %comspec%,于是,再运行完
%ComSpec% /k prompt e 100 B4 00 B0 12 CD 10 B0 03 CD 10 CD 20 $_g$_q$_
之后, 马上又运行了. EXIT,回到原来的命令提示符, 提示符恢复为C:\ 的形式.
第二个|则是把
e 100 B4 00 B0 12 CD 10 B0 03 CD 10 CD 20
g
q
这段 PIPE给DUBUG 命令. 对DUBUG我是一点都不懂,不知道它作了什么. 好像运行后进入全屏的命令提示符.
经实验. 将
e 100 B4 00 B0 12 CD 10 B0 03 CD 10 CD 20
g
q
存成 文本文件 1.txt
再用命令 debug < 1.txt 将达到进入全屏的同样效果. 作者只是巧妙的利用prompt 命令, 来避免了写到文本的麻烦.(这样,就算不可写,也一样能运行)
chcp 437>nul 是把控制台代码页换成英语美国
而且隐藏了成功的提示. 失败的话还是会提示.
graftabl 936>nul
则是把代码页扩展字符的监视器显示 更成中文. 同样 用> NUL 隐藏了输出.
具体怎么回事我也不懂,我只懂要显示英文提示的时候用chcp 437, 从未用过 graftale
参考:
Graftabl
启用可在图形模式下显示扩展字符集的功能。
要点•
此工具在基于 Itanium 的版本的 Windows 操作系统中不可用。
•
此工具在基于 x64 的版本的 Windows 操作系统中不可用。
语法
graftabl [xxx] [/status]
参数
xxx
指定要以图形模式显示扩展字符的代码页。下表列出了每个有效的代码页标识号及其国家(地区)或语言。
值 国家(地区)
437
美国
850
多语言(拉丁文 I)
852
斯拉夫语(拉丁文 II)
855
西里尔文(俄语)
857
土耳其语
860
葡萄牙语
861
冰岛语
863
加拿大 - 法语
865
日耳曼语
866
俄语
869
现代希腊语
/status
标识 graftabl 正在使用的代码页。
/?
在命令提示符下显示帮助。
注释•
有关使用代码页的信息,请参阅“相关主题”中的 chcp 或 mode(设置设备代码页)。
•
Graftabl 不更改控制台输入代码页。Graftabl 只影响指定代码页扩展字符的监视器显示。要更改正在使用的代码页,请使用 mode 或 chcp 命令。
•
了解 graftabl 退出码
下表列出了每个退出码及其简单描述。
退出码 描述
0
已成功装载字符集。未装载过去的代码页。
1
指定了错误的参数。没有采取任何措施。
2
发生文件错误。
•
可以在批处理程序的 if 命令行上使用 ErrorLevel 参数来处理由 graftabl 返回的退出码。
示例
要将代码页 437(美国)的图形字符集加载到内存中,请键入:
Graftabl 437
要将代码页 850(多语言)的图形字符集加载到内存中,请键入:
Graftabl 850
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询