在不同的Windows环境下我们都不能直接确定服务器上默认语言是什么。也不能直接修改服务器的默认语言,这里我们为什么要说服务器呢?因为脚本这种工具大多时候都是为了解决服务器上的一些问题而存在的。至于为什么有些人要用Windows来作为服务器呢,这我就没法理解了,毕竟Windows作为服务器的话,虽然操作简单,但是如果是想要做分布式,还是比较麻烦的,软件安装不能自动化,软件配置也不能自动化。

这里我们需要解决的是 Windows上命令提示符指定显示的国家语言,但是这个解决方式也并不是完美的,首先指定指令有返回,而Windows上没有Linux那样的重定向黑洞(/dev/null)也就是需要生成一个新的文件来接收垃圾输出,而且由于系统默认的时间格式存在,导致部分程序的输出中还是带有中文。

0x00 概述

在编写脚本的时候,有时候需要特定的返回结果显示语言。这里我们就需要知道怎么在Windows命令提示符中指定显示语言了。

0x01 解决方案

就如下面

1
2
3
4
5
6
7
8
9
10
11
12
C:\Users\ismdeep>ping www.baidu.com

正在 Ping www.baidu.com [14.215.177.38] 具有 32 字节的数据:
来自 14.215.177.38 的回复: 字节=32 时间=22ms TTL=52
来自 14.215.177.38 的回复: 字节=32 时间=22ms TTL=52
来自 14.215.177.38 的回复: 字节=32 时间=22ms TTL=52
来自 14.215.177.38 的回复: 字节=32 时间=22ms TTL=52

14.215.177.38 的 Ping 统计信息:
数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),
往返行程的估计时间(以毫秒为单位):
最短 = 22ms,最长 = 22ms,平均 = 22ms
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
下表列出了所有支持的代码页及其国家(地区)或者语言:
代码页 国家(地区)或语言
437 美国
708 阿拉伯文(ASMO 708)
720 阿拉伯文(DOS)
850 多语言(拉丁文 I)
852 中欧(DOS) - 斯拉夫语(拉丁文 II)
855 西里尔文(俄语)
857 土耳其语
860 葡萄牙语
861 冰岛语
862 希伯来文(DOS)
863 加拿大 - 法语
865 日耳曼语
866 俄语 - 西里尔文(DOS)
869 现代希腊语
874 泰文(Windows)
932 日文(Shift-JIS)
936 中国 - 简体中文(GB2312)
949 韩文
950 繁体中文(Big5)
1200 Unicode
1201 Unicode (Big-Endian)
1250 中欧(Windows)
1251 西里尔文(Windows)
1252 西欧(Windows)
1253 希腊文(Windows)
1254 土耳其文(Windows)
1255 希伯来文(Windows)
1256 阿拉伯文(Windows)
1257 波罗的海文(Windows)
1258 越南文(Windows)
20866 西里尔文(KOI8-R)
21866 西里尔文(KOI8-U)
28592 中欧(ISO)
28593 拉丁文 3 (ISO)
28594 波罗的海文(ISO)
28595 西里尔文(ISO)
28596 阿拉伯文(ISO)
28597 希腊文(ISO)
28598 希伯来文(ISO-Visual)
38598 希伯来文(ISO-Logical)
50000 用户定义的
50001 自动选择
50220 日文(JIS)
50221 日文(JIS-允许一个字节的片假名)
50222 日文(JIS-允许一个字节的片假名 - SO/SI)
50225 韩文(ISO)
50932 日文(自动选择)
50949 韩文(自动选择)
51932 日文(EUC)
51949 韩文(EUC)
52936 简体中文(HZ)
65000 Unicode (UTF-7)
65001 Unicode (UTF-8)
1
2
3
4
5
6
7
8
9
10
11
12
C:\Users\ismdeep>mode con cp select=437 > log.txt && ping www.baidu.com

Pinging www.baidu.com [14.215.177.39] with 32 bytes of data:
Reply from 14.215.177.39: bytes=32 time=31ms TTL=52
Reply from 14.215.177.39: bytes=32 time=30ms TTL=52
Reply from 14.215.177.39: bytes=32 time=31ms TTL=52
Reply from 14.215.177.39: bytes=32 time=30ms TTL=52

Ping statistics for 14.215.177.39:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 30ms, Maximum = 31ms, Average = 30ms