以下脚本用于读取$ServerName
中的服务器列表和$Myfiles
中的文件列表,然后使用ImportExcel
模块将Select-Object
条件导出到Excel 。我遇到的问题是脚本循环遍历2个文件,只输出2个列表中最后一个服务器和文件的条件。
如果我将Export-Excel
更改为Export-Csv C:\outputFile.csv -Append
,则脚本按预期工作,并循环遍历每个服务器上的每个文件并导出所有数据。这没关系,但我更喜欢使用Export-Excel
,所以我可以在报告中使用数据透视表和着色。
foreach ($server in Get-Content "C:\MyServers.txt") {
$ServerName = $server
foreach ($file in Get-Content "C:\MyFiles.txt") {
$Myfiles = $file
Get-ChildItem -Path \\$server\$Myfiles -Force -ErrorAction SilentlyContinue |
ForEach-Object {
try {
$_ | Add-Member NoteProperty ServerName $ServerName
} catch {}
$_
} |
Select-Object ServerName, Name, LastWriteTime, Directory |
Export-Excel -Path C:\outputFile.xlsx
}
}
答案 0 :(得分:2)
将整个输出分配给变量,然后在最后将其传递给Export-Excel
:
$data = foreach ($ServerName in Get-Content "C:\MyServers.txt")
{
foreach ($Myfiles in Get-Content "C:\MyFiles.txt")
{
Get-ChildItem -Path \\$ServerName\$Myfiles -Force -ErrorAction SilentlyContinue |ForEach-Object {
try {
$_ | Add-Member NoteProperty ServerName $ServerName
} catch {}
$_
} | Select-Object ServerName,Name,LastWriteTime,Directory
}
}
$data | Export-Excel -Path C:\outputFile.xlsx