我有一个奇怪的(不要问)需要查看DIR
许多(一些)不同本地化版本的 Windows(例如法语、西班牙语等)的 Win XP cmd shell 命令的一些示例。
我需要的具体命令是(注意这个命令很重要......如果你不费心使用这个命令,那就不用费心响应):
dir /4 /-c /t:a /n /a:-d-h-s
我知道这是一个疯狂的希望,但我希望能够在不考虑本地化的情况下截断/解析输出。
我有一个奇怪的(不要问)需要查看DIR
许多(一些)不同本地化版本的 Windows(例如法语、西班牙语等)的 Win XP cmd shell 命令的一些示例。
我需要的具体命令是(注意这个命令很重要......如果你不费心使用这个命令,那就不用费心响应):
dir /4 /-c /t:a /n /a:-d-h-s
我知道这是一个疯狂的希望,但我希望能够在不考虑本地化的情况下截断/解析输出。
可能不是您想听到的,但我们在依赖不同 Windows 本地化的行为时发现了各种问题。
我们有一个在美国英语中运行良好的 cmd 文件,但是当我们发送它进行本地化时,他们发现了各种各样的问题,我们必须支持大约 23 个不同的版本。
最后,编写(实际的 C)代码以通过 Win32 获取信息并以我们想要的格式输出它更容易。这消除了对特定本地化格式和配置问题的依赖(一些命令的输出不同,不仅基于语言环境,还基于用户配置)。
我的建议:找到一种不同的方式来做到这一点。
波兰 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
这是韩语 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……但出于我的目的,这没关系)。
当然......这是错误的方式......但需要必须/恶魔驱动。根本问题是无法修改/依赖运行命令的机器。解析/截断非常小(提取文件名、文件大小和创建日期)。好消息是文件名保证不包含任何空格。这意味着 split() 的最后两个字段是文件名和大小,前 N 个字段是日期(注意我不需要日期作为日期,只需一个字符串即可)。技巧可能涉及确保 unicode 正确移动(与韩国示例不同)。