2017-10-09 67 views
0

我已經得到的,我想合併到一起的目錄一套txt文件。結合TXT文件的目錄到一個文件中列在結尾處添加與文件名

所有TXT文件的內容是相同的格式如下:

 
IPAddress Description    DNSDomain 
--------- -----------    --------- 
{192.168.1.2} Microsoft Hyper-V Network Adapter  
{192.168.1.30} Microsoft Hyper-V Network Adapter #2 

我有下面的代碼,結合在一個txt文件名爲全部.txt所有txt文件。

copy *.txt all.txt 

從這個全部.txt我什麼也看不見線從什麼txt文件來了。任何想法的任何位的代碼,將添加一個額外的列結束txt文件與行的文件名來自?

+0

如果您還沒有與格式表輸入/輸出字符串缺胳膊少腿你的數據,你可以添加在其中生成的文件腳本中的服務器名稱的屬性。 (然後將它們全部放入一個CSV文件中)。如果可能的話,返回並編輯該腳本,以便輸出正確的數據 - 或易於處理數據,而不是嘗試採用難以處理的輸出並使用它。 – TessellatingHeckler

+0

這是生成您看到的輸出文件的powershell: Get-WmiObject -Class Win32_NetworkAdapterConfiguration -Filter IPEnabled = TRUE -ComputerName SERVERNAMEHERE |格式 - 表格 - 屬性IP地址,說明,DNSDomain | Out-File c:\ temp \ server.txt – user3290171

+0

不需要添加文件名列。 'all.txt'的全部內容來自通配符模式'* .txt'枚舉的最後一個文件,因爲'copy * .txt all.txt'根本不會像您認爲的那樣工作。 –

回答

0

按照上述意見,你就把Format-Table輸出到一個文本文件中。需要注意的是Format-Table可能視覺結構在屏幕上,但僅僅是文本行。通過這樣做,你已經更難處理數據。

如果你只是想從Get-WMIObject cmdlet的結果,一些屬性,使用Select-Object這(在這裏給出的使用)將有效地過濾數據,你想要的屬性。

Get-WmiObject -Class Win32_NetworkAdapterConfiguration -Filter IPEnabled=TRUE -ComputerName SERVERNAMEHERE | 
    Select-Object PSComputerName, IPAddress, Description, DNSDomain | 
    Export-Csv 'C:\temp\server.csv' 

需要注意的是,我們能夠爲包括PScomputerName:

而不是寫文本到簡單的文件,你可以通過寫一個結構化的文件(即CSV)保存的數據的表格性質每行數據中的屬性,有效地爲您提供所需的額外數據列。

這麼多獲得的原始數據。你可以在所有的CSV數據讀取並再次將其寫出來的一種方式可能是這樣的:

Get-ChildItem *.csv -Exclude all.csv | 
    Foreach-Object {Import-Csv $_} | 
    Export-Csv all.csv 

注意,我們排除輸出文件中的初始cmdlet來避免讀寫形式/到同一個文件不休。

如果你不擁有的奢侈品來收集數據再次,你需要的文件卷軸一體。假脫機文件一起與Get-Content做了,這樣的事情:

Get-ChildItem *.txt -Exclude all.txt | 
    Foreach-Object {Get-Content $_ -Raw} | 
    Out-File all.txt 

在你的情況,你想後綴的每一行,因爲你需要處理的文件線由行其tricker:

$files = Get-ChildItem *.txt 

foreach($file in $files) { 
    $lines = Get-Content $file 
    foreach($line in $lines) { 
     "$line $($file.Name)" | Out-File all.txt -Append 
    } 
} 
相關問題