2009-02-03 21 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