請問每個client PC 會產成 hostname.text 內容如下,約800(台)檔案,請問如何全部匯入 excel。 謝謝!!
7-Zip 9.20
Adobe Flash Player 10 ActiveX--Version: 10.0.32.18
嘸蝦米輸入法 7.0 標準版--Version: 7, 0, 4, 433
Windows Desktop Search 3.01--Version: 03.01.6000.72
Microsoft .NET Framework 1.1 (1033)
Microsoft .NET Framework 1.1
Microsoft .NET Framework 3.5 SP1
哈,看不是很懂您的問題描述是什麼意思,
不過,單就您的問題標題~您可以這樣做…
這是期末專題嗎?
不能多寫些來龍去脈嗎?
這個檔的產生是 windows 的功能,還是自己寫程式生成的?
匯入 Excel 的目的?要作統計報表?
還是這些檔案都還在 800壯士身上,你要知道如何撈回?
我覺得這是一個不錯的軟體服務,若能定時收取每台電腦的軟體安裝資訊,並且有個統計圖表,也就很容易掌握電腦的相容性,並且於該電腦出狀況時,得以查明。
在那800個檔案的目錄
下這列指令
將800個檔案合成一個大檔案
<pre class="c" name="code">
find /v "zzz" *.text > combined.txt
然後再將 combined.txt 匯入 Excel
其實不匯入也可以
反正都只是個亂七八糟的資料而已
bwing提到:
約800(台)
想必Microsoft與商業軟體聯盟(Business Software Aliance)
會對於貴公司的版權買到多少
很有興趣
可以自動化的話是不錯的方式
如果是我會用FTP加排程來做,這樣只要指定時間到自動就會做事了。
<pre class="c" name="code">
Set AdminHost=用來整理資料的主機名稱
Set NewFile=目地檔案名稱.csv
Set Format=來源檔不含.的附檔名
Set Server=FTP主機IP或名稱
Set Acc=FTP使用者帳號
Set Pass=FTP使用者密碼
Set File=來源端的檔案所在路徑+%COMPUTERNAME%(自動抓取電腦名稱).%Format%
Set FilePath=FTP 儲存的路徑
Set FtpPar=FTP參數檔路徑及檔名
SETLOCAL ENABLEDELAYEDEXPANSION
IF "%COMPUTERNAME%" EQU "%AdminHost%" (Goto Admin) ELSE (Goto Client)
:Admin
::=====================================
Echo "主機名稱","項目">%NewFile%
For %%S In (*.%Format%) Do (
For /f %%J In ('Type %%~fS') Do Echo "%%~nS","%%J" >>%NewFile%
)
::=====================================
Goto :EOF
:Client
Echo OPEN %Server%>"%FtpPar%"
Echo %Acc%>>"%FtpPar%"
Echo %Pass%>>"%FtpPar%"
Echo CD %FilePath%>>"%FtpPar%"
Echo PUT %File%>>"%FtpPar%"
Echo CLOSE>>"%FtpPar%"
Echo BYE>>"%FtpPar%"
FTP -s:"%FtpPar%"
Del "%FtpPar%"
Goto :EOF
使用方式
資料整理端
使用排定的時間來執行批次檔,當時間到會自動整合資料到指定的檔案中,可由EXCEL來開啟
資料來源端
使用排定的時間來執行批次檔,當時間到會自動將指定的資料上傳到FTP中
資料整理端與FTP是同一台的話可以連下載都免了,或可以再加入下載的指令也是可以的。
如果不想太複雜可以只複製
::=====================================
到
::=====================================
之間的語法即可自動整理,所有.text 資料必需在同一個路徑中
蟹老闆真認真!
問題是 .... 這題的重點應該是《在 Excel 裡要怎麼呈現哪些文字資料》才對。不過樓主一點都沒提,所以也不用這麼講究了,反正只要讓 Excel 讀進去而已,正如海綿大講的一樣,呈現不出想看的報表,再多資料也只是亂七八糟的資料而已。
wiseguy提到:
在 Excel 裡要怎麼呈現哪些文字資料
.CSV檔可用Excel直接開啟,依樓主的狀況在Excel打開後會有二個欄位,第一欄是主機名稱,第二欄就是.text中的資料,這樣的話可以得知哪台電腦安裝了什麼程式,
只是樓主並沒有很清楚的表達出他所想的,我只是純猜測他可能是要統計或記錄哪台電腦安裝了什麼程式,若單純的匯入那些資料真的會是一份不可用的資料,所以在每一筆的資料前加上了主機名稱,這樣的話就可以得知什麼電腦裝了什麼程式.
還是我猜錯他的用意了
dream提到:
在每一筆的資料前加上了主機名稱,這樣的話就可以得知什麼電腦裝了什麼程式.
如果需求這麼簡單,那就不需要《匯入 Excel》了,文字檔不就可以知道了嗎?
嗯... 感覺上, 還不如去裝一個MIS工具, 省去一堆麻煩~
http://www.spiceworks.com/
這套是免費的 XD
小弟也曾經遇過類似問題,
當然也可以選擇免費或是付費軟體。
但,
Dream大大的答案,真是個好答案!
簡單乾淨,不用擔心資料外洩;
且必要時,仍可以說不知道公司有多少軟體。
.
不過,資料蒐集的越完整,只是便宜軟體公司「來要錢」而已。
用excel vba 或巨集就可以做到了
因為看不太懂題目
我猜猜看
你已經把800台的hostname.text匯到某資料匣
它是命名為:hostname001.text~hostname800.text
你要把這800個檔案匯入一支Excel檔裡
如果是
可以在DOS環境下處理看看
c:\hostname\>copy *.text hostname.xls
此指令會把所有副檔名為.text合併成hostname.xls
再用Excel即可直接開啟hostname.xls
若資料量超大,會造成dos無法負擔,你可以分8份處理..
以上建議
以我做過的軟體盤點來舉例
檔案內容大概會有以下三段:SYSTEM,SOFTWARE,PROCESSES
Host name: WS****
IP-address: 192.168.*****
User name: ***\***
Description: 工程******
Operating system: Microsoft Windows 7 (version 6.1.7601; build 7601)
Name: Microsoft Windows 7
Version: 6.1.7601
Build: 7601
7-Zip 9.20
Adobe Flash Player 11 ActiveX, Version: 11.3.300.271, Publisher: Adobe Systems Incorporated, Size: 6.0 MB
Adobe Reader X (10.1.6) - Chinese Traditional, Version: 10.1.6, Publisher: Adobe Systems Incorporated, Install date: 2013-02-21, Size: 198.2 MB
explorer.exe (C:\Windows\Explorer.EXE)
這個收集到的是工程再畫Layout的PC,檔名就是電腦名稱,
這個電腦名稱資訊會出現在SYSTEM這段的不同行。
真正想收集到800台電腦的就是SYSTEM+SOFTWARE這2段,會有版本序號資訊,重點是,
必須整理成兩個欄位,分別是1.主機名稱,2.軟體名稱,甚至IP,序號等等額外欄位。
而這個檔案,初估就有將近500行的資訊,所以不先篩選就匯入Excel的話,
800個檔案大概就要500*800=40萬筆資料!
用EXCEL VBA喔!很好,慢慢等,且Office至少要2007以上版本。
花得起錢的公司用軟體盤點軟體直接監控每部PC的安裝行為,用不著這麼麻煩。
會上來問的,應該都是公司不想花錢,卻又要IT自己完全掌控每部PC,
但800部PC的公司也花不起這個監控軟體?
原問者,應該只註冊個帳號問問,搞不好也不會再上來,
甚至為了這個查緝涵離職了,都有可能吧!
這是我做過的150部PC的檔案彙總經驗。