私は現在、複数のワークステーションでデフォルトのプリンターを読み取り、その情報をテキストファイルにネットワーク ドライブに書き込む 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 ファイルを 1 つの大きなファイルにマージします。
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)
、Excelでデータを使用するには、オンラインのプリンター情報に加えて、ファイル名の-partを別の値として必要とします。マージされたファイルにファイル名の一部を挿入する方法を教えてください。