在这个批处理文件中,°,±和²如何产生░,▒&??

use*_*001 5 encoding ascii cmd batch-file

这段代码:

   @echo off
   set /p a=Installing [<nul
   set b=1
   :loop
   if %b% leq 2 set /p a=°<nul
   if %b% gtr 4 if %b% leq 6 set /p a=±<nul
   if %b% gtr 6 if %b% leq 8 set /p a=²<nul
   if %b% gtr 8 if %b% leq 10 set /p a=±<nul
   if %b% gtr 10 set /p a=°<nul
   choice /t 1 /c y /d y>nul
   set /a b=%b%+1
   if %b%==13 (echo ]&goto :eof)
   goto :loop
Run Code Online (Sandbox Code Playgroud)

...来自http://www.experts-exchange.com/OS/Microsoft_Operating_Systems/MS_DOS/A_1237-DOS-ECHO-text-to-previous-line-by-P​​aul-Tomasi.html#c18182并生成以下内容cmd窗口中的输出:

    Installing [??????????]
Run Code Online (Sandbox Code Playgroud)

但是,我似乎无法通过谷歌找到解释这是如何工作的解释.将其他扩展的ascii字符替换为它们的位置似乎产生"命令的语法不正确",因此只能设法猜测这是一个黑客,通过无意的方式将这些字符交换到扩展的ascii集中的较低字符由设计师的技巧.

如果有人也可以建议一个好的网站来了解更多关于cmd/cmd程序这样的功能,我们将不胜感激.

kam*_*ilk 4

这是因为您的编辑器使用的编码与 DOS 和命令行使用的编码不同。

\n\n

请参阅此处的字符 176-178:

\n\n

http://academic.evergreen.edu/projects/biophysicals/technotes/program/ascii_ext-pc.htm

\n\n

DOS 和 WIN 列中的字符对由相同的数值表示,但 DOS(以及命令行)和 Windows(文本编辑器)将这些数字显示为不同的符号。

\n\n

如果不清楚:您的文本文件是一系列字节(数字),其中一个字节的值为 176。在 DOS代码页 437下,它用于表示 \xe2\x96\x93 字形和命令行,由于历史原因,使用与 DOS 相同的编码。但是在 Windows 上运行的文本编辑器显然使用旧的Windows-1252编码读取文件,其中 176 表示 \xc2\xb0。

\n\n

你可以尝试找一个支持437的编辑器,它可以让你避免这样的困惑。

\n