2009-02-03 55 views
0

我有一个奇怪的(不要问)需要看到几个Windows XP cmd shell的例子DIR命令的很多(一些)不同的本地化版本的Windows(例如法语,西班牙语等)。以各种本地化版本的DIR命令输出

具体命令我需要的是(注意这个命令是很重要的......如果你不刻意去使用这个命令那就不必回应):

dir /4 /-c /t:a /n /a:-d-h-s 

我知道这是一个疯狂的希望,但我希望能够斩波/解析输出,而不管本地化。

回答

0

下面是韩国XP输出:

C µå¶óÀ̺êÀÇ º¼·ý¿¡´Â À̸§ÀÌ ¾ø½À´Ï´Ù. 
º¼·ý ÀÏ·Ã ¹øÈ£: 7C33-7DCE 

C:\WINDOWS\system32 µð·ºÅ͸® 

2009-02-02 ¿ÀÈÄ 11:39    1697 $winnt$.inf 
2008-02-19 ¿ÀÈÄ 09:07    2151 12520437.cpx 
2008-02-19 ¿ÀÈÄ 09:07    2233 12520850.cpx 
2008-02-19 ¿ÀÈÄ 09:06   100352 6to4svc.dll 
2008-02-19 ¿ÀÈÄ 08:47    1460 a15.tbl 

(似乎失去了传输过程中的Unicode ...但我的目的,这是确定)。

2

可能不是你想听到的,但我们发现依赖于Windows不同本地化行为中的各种问题。

我们有一个cmd文件,在美国英语中运行良好,但是当我们发送它用于本地化时,他们发现了各种问题,我们必须支持大约23个不同的版本。

最后,通过编写(实际的C)代码来通过Win32获取信息并以我们想要的格式输出它会更容易。这消除了对特定本地化格式配置问题的依赖(某些命令的输出方式不仅仅是基于区域设置,还有用户配置)。

我的建议:找到一个不同的方式来做到这一点。

+0

听起来是正确的。 +1 – Learning 2009-02-03 04:55:27

0

当然...这是错误的方式...但需要必须/魔鬼驱动器。根本问题是,运行命令的机器不能被修改/依赖。解析/劈砍很小(拉出文件名,文件大小和创建日期)。好消息是,文件名保证不包含任何空格。这意味着split()的最后2个字段是文件名和大小,前N个字段是日期(注意我不需要日期作为日期,只是一个字符串很好)。 Trickiness可能涉及确保unicode正确移动(不像韩国的例子)。

1

波兰的Windows Vista输出:

C:\Users\Karol>dir /4 /-c /t:a /n /a:-d-h-s 
Wolumin w stacji C to OS 
Numer seryjny woluminu: 3EC1-6B83 

Katalog: C:\Users\Karol 

2009-12-10 21:19    2263 intlname.ols 
2009-07-23 21:17    1480 laptop_to_epia.ppk 
2009-07-23 21:17    466 laptop_to_epia.pub 
2010-01-31 09:49    10392 _viminfo 
       4 plik(ów)    14601 bajtów 
       0 katalog(ów)  10880864256 bajtów wolnych