结合TXT文件的目录到一个文件中列在结尾处添加与文件名

问题描述:

我已经得到的,我想合并到一起的目录一套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'根本不会像您认为的那样工作。 –

按照上述意见,你就把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 
    } 
}