Powershell ForEach循环将我的变量留空

Powershell ForEach循环将我的变量留空,powershell,foreach,Powershell,Foreach,Powershell完全是新手,因此,对于这群人中的大多数人来说,这可能是一项简单的任务,我提前表示歉意 $File = Get-ChildItem "C:\location" $ACLs= foreach ($item in $File) {get-acl $item.FullName} $foldernames = $acls.pschildname $ACLNames = $acls.Access.IdentityReference $ACLNamesNew = foreach ($AC

Powershell完全是新手,因此,对于这群人中的大多数人来说,这可能是一项简单的任务,我提前表示歉意

$File = Get-ChildItem "C:\location"
$ACLs= foreach ($item in $File) {get-acl $item.FullName}
$foldernames = $acls.pschildname
$ACLNames = $acls.Access.IdentityReference

$ACLNamesNew = foreach ($ACLName in $ACLNames) {
   $ACLNameString = $ACLname.Value.ToString()
   $ACLNameFormatted = $ACLNameString.Split("\")[0]
}

最终目标是获取字符串,仅从字符串中修剪域名/组名,仅提取唯一值,并将剩下的内容写入变量$ACLNames。甚至没有尝试过过滤unique,因为即使是上面的示例也会将$ACLNamesNew留空。foreach seams在我的测试中听起来不错,但它没有像我预期的那样将值写入变量。

如果要收集循环的结果,必须在循环中输出一些内容。这应该足够了。。如果我没弄错的话

$fileList = Get-ChildItem 'C:\location'
$ACLList = foreach ($file in $fileList) { get-acl $file.FullName }
$ACLNameList = $ACLList.Access.IdentityReference

$ACLNameNewList = foreach ($ACLName in $ACLNameList) {
    $ACLname.Value.ToString().Split("\")[0]
}
$ACLNameNewList

如果要收集循环的结果,必须在循环中输出一些内容。这应该足够了。。如果我没弄错的话

$fileList = Get-ChildItem 'C:\location'
$ACLList = foreach ($file in $fileList) { get-acl $file.FullName }
$ACLNameList = $ACLList.Access.IdentityReference

$ACLNameNewList = foreach ($ACLName in $ACLNameList) {
    $ACLname.Value.ToString().Split("\")[0]
}
$ACLNameNewList
当我读到“…必须输出一些东西…”时,灯泡发出咔嗒声。解决方案是可行的,但真正的答案是。。。输出。如果未生成输出,则无法期望变量中的输入。谢谢你,奥拉夫!当我读到“…必须输出一些东西…”时,灯泡发出咔嗒声。解决方案是可行的,但真正的答案是。。。输出。如果未生成输出,则无法期望变量中的输入。谢谢你,奥拉夫!