0
我目前正在研究PowerShell脚本,该脚本读出多个工作站上的默认打印机,并将信息写入文本文件到网络驱动器。我最后一个关于脚本内部文本替换的问题已成功解决。但是现在我在第二部分工作。从文件名写入部分,包括合并的txt/csv文件中的第一行与powershell
Get-WmiObject -Class Win32_Printer -Filter "Default = $true" | % {
$_.Name -replace '(?:.*)\\NDPS-([^\.]+)(?:.*)', 'PS-$1'
} | Out-File -FilePath "H:\daten\printer\$($env:COMPUTERNAME)_defaultprinter.txt"
Get-WmiObject Win32_Printer -Filter "Default = $true" `
| Select-Object -expandProperty Name `
| Out-File -FilePath "P:\batch\migration\Printer\$($env:COMPUTERNAME)_$($env:USERNAME)_defaultprinter.txt"
提供的代码的最后一行将默认打印机写入网络驱动器。现在我有近1500个单一的txt文件。为了更好的分析,我使用以下PowerShell脚本将所有单个txt文件合并为一个大文件。
Get-ChildItem -path \\samplepath\prgs\prgs\batch\migration\Printer -recurse | ? {
! $_.PSIsContainer
} | ? {
($_.name).contains(".txt")
} | % {
Out-File -filepath \\samplepath\prgs\prgs\batch\migration\Printer\gesamt_printer.txt -inputobject (get-content $_.fullname) -Append
}
我收到一个文件至极包含从每一个TXT文件默认打印机的信息,但我需要从文件名中除了打印机信息的单独价值$($env:USERNAME)
-part上线使用数据Excel中。有人可以请我提示如何从合并文件中的文件名插入部分?
你好Ansgar Wiechers,谢谢你提供的解决方案。但我不确定如何在第一个问题的第二个代码中使用您的建议。如果我在上面的代码的末尾添加它,我会收到零阵列索引错误。 – 2013-03-12 12:29:17
@AgentSpagusi查看更新的答案。 – 2013-03-12 12:59:59
非常感谢!它完美无缺!最好的问候,AgentSpagusi – 2013-03-12 13:08:37