我有一個奇怪的(不要問)需要看到幾個Windows XP cmd shell的例子DIR
命令的很多(一些)不同的本地化版本的Windows(例如法語,西班牙語等)。以各種本地化版本的DIR命令輸出
具體命令我需要的是(注意這個命令是很重要的......如果你不刻意去使用這個命令那就不必迴應):
dir /4 /-c /t:a /n /a:-d-h-s
我知道這是一個瘋狂的希望,但我希望能夠斬波/解析輸出,而不管本地化。
我有一個奇怪的(不要問)需要看到幾個Windows XP cmd shell的例子DIR
命令的很多(一些)不同的本地化版本的Windows(例如法語,西班牙語等)。以各種本地化版本的DIR命令輸出
具體命令我需要的是(注意這個命令是很重要的......如果你不刻意去使用這個命令那就不必迴應):
dir /4 /-c /t:a /n /a:-d-h-s
我知道這是一個瘋狂的希望,但我希望能夠斬波/解析輸出,而不管本地化。
下面是韓國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 ...但我的目的,這是確定)。
可能不是你想聽到的,但我們發現依賴於Windows不同本地化行爲中的各種問題。
我們有一個cmd文件,在美國英語中運行良好,但是當我們發送它用於本地化時,他們發現了各種問題,我們必須支持大約23個不同的版本。
最後,通過編寫(實際的C)代碼來通過Win32獲取信息並以我們想要的格式輸出它會更容易。這消除了對特定本地化格式和配置問題的依賴(某些命令的輸出方式不僅僅是基於區域設置,還有用戶配置)。
我的建議:找到一個不同的方式來做到這一點。
當然...這是錯誤的方式...但需要必須/魔鬼驅動器。根本問題是,運行命令的機器不能被修改/依賴。解析/劈砍很小(拉出文件名,文件大小和創建日期)。好消息是,文件名保證不包含任何空格。這意味着split()的最後2個字段是文件名和大小,前N個字段是日期(注意我不需要日期作爲日期,只是一個字符串很好)。 Trickiness可能涉及確保unicode正確移動(不像韓國的例子)。
波蘭的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
聽起來是正確的。 +1 – Learning 2009-02-03 04:55:27