【发布时间】:2021-04-13 09:21:19
【问题描述】:
我正在尝试使用 Get-Content 并创建一个变量,该变量将根据我文件的每一行填写目录路径名。
我在 .csv 文件中有很长的用户列表,我想检查他们的每个用户名以获取目录大小。
如果我删除 $username 变量并在 $startdirectory 的末尾手动键入用户名,该脚本将起作用。
$username = Get-Content 'C:\Scripts\AvayaUsers.csv'
$startDirectory = '\\xx\xxxx\xxxxxxxxxxx\users\$username'
$directoryItems = Get-ChildItem $startDirectory | Where-Object {$_.PSIsContainer -eq $true} | Sort-Object
foreach ($i in $directoryItems)
{
$subFolderItems = Get-ChildItem $i.FullName -recurse -force | Where-Object {$_.PSIsContainer -eq $false} | Measure-Object -property Length -sum | Select-Object Sum
$i.FullName + " -- " + "{0:N2}" -f ($subFolderItems.sum / 1GB) + " GB"
}
【问题讨论】:
-
如果它真的是一个 CSV 文件......你为什么不使用
Import-CSV? -
我同意@Lee_Dailey。此外,如果您在
$startDirectoryvar 末尾对用户名进行硬编码,则此方法有效,那么您的问题的解决方案是使用$userName数组的外部foreach循环。 -
感谢您的宝贵时间!