查找跨多个服务器的共享大小-powershell

查找跨多个服务器的共享大小-powershell,powershell,directory,network-share,Powershell,Directory,Network Share,我有大约1600个旧的家用硬盘,需要在这些硬盘上捕获文件夹大小。它们分布在12个NAS设备上,我需要了解每个文件夹的大小。我看到这要求很多,但他们总是要求在一台服务器上的所有份额 我使用了简单的一行程序,比如下面的一行程序,效果很好 Get-ChildItem \\Server1\Users\User1 -file -recurse | Measure-Object -Sum Length 如何从多个位置输入txt或csv 像 导出到csv也不错 谢谢 您可以使用Get Content逐行读取

我有大约1600个旧的家用硬盘,需要在这些硬盘上捕获文件夹大小。它们分布在12个NAS设备上,我需要了解每个文件夹的大小。我看到这要求很多,但他们总是要求在一台服务器上的所有份额

我使用了简单的一行程序,比如下面的一行程序,效果很好

Get-ChildItem \\Server1\Users\User1 -file -recurse | Measure-Object -Sum Length
如何从多个位置输入txt或csv

导出到csv也不错


谢谢

您可以使用
Get Content
逐行读取文本文件:

Get-Content .\path\to\file.txt
接下来,我们需要为每一行重复一行:

Get-Content .\path\to\file.txt |ForEach-Object {
  Get-ChildItem $_ -File -Recurse | Measure-Object -Sum Length
}
这将给我们1600个单独的测量-但现在我们不知道它们属于哪条路径

为了跟踪哪个度量值属于哪个用户目录,让我们创建一个包含所有信息的新对象:

Get-Content .\path\to\file.txt |ForEach-Object {
  $Measurement = Get-ChildItem $_ -File -Recurse | Measure-Object -Sum Length
  [pscustomobject]@{
    Path = $_
    FileCount = $Measurement.Count
    TotalSize = $Measurement.Sum
  }
}
最后,我们可以使用
导出CSV
导出到CSV:

Get-Content .\path\to\file.txt |ForEach-Object {
  $Measurement = Get-ChildItem $_ -File -Recurse | Measure-Object -Sum Length
  [pscustomobject]@{
    Path = $_
    FileCount = $Measurement.Count
    TotalSize = $Measurement.Sum
  }
} |Export-Csv .\path\to\output.csv -NoTypeInformation

您可以使用
Get Content
逐行读取文本文件:

Get-Content .\path\to\file.txt
接下来,我们需要为每一行重复一行:

Get-Content .\path\to\file.txt |ForEach-Object {
  Get-ChildItem $_ -File -Recurse | Measure-Object -Sum Length
}
这将给我们1600个单独的测量-但现在我们不知道它们属于哪条路径

为了跟踪哪个度量值属于哪个用户目录,让我们创建一个包含所有信息的新对象:

Get-Content .\path\to\file.txt |ForEach-Object {
  $Measurement = Get-ChildItem $_ -File -Recurse | Measure-Object -Sum Length
  [pscustomobject]@{
    Path = $_
    FileCount = $Measurement.Count
    TotalSize = $Measurement.Sum
  }
}
最后,我们可以使用
导出CSV
导出到CSV:

Get-Content .\path\to\file.txt |ForEach-Object {
  $Measurement = Get-ChildItem $_ -File -Recurse | Measure-Object -Sum Length
  [pscustomobject]@{
    Path = $_
    FileCount = $Measurement.Count
    TotalSize = $Measurement.Sum
  }
} |Export-Csv .\path\to\output.csv -NoTypeInformation

哇!非常感谢!很好用,哇!非常感谢!工作完美。