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 ($ACLName in $ACLNames) {
$ACLNameString = $ACLname.Value.ToString()
$ACLNameFormatted = $ACLNameString.Split("\")[0]
}
最终目标是获取字符串,仅从字符串中修剪域/组名称,仅提取唯一值,并将剩下的内容写入变量 $ACLNames。甚至没有尝试过滤唯一性,因为即使上述内容也将 $ACLNamesNew 留空。我的测试中的 foreach 接缝听起来不错,但它并没有像我预期的那样将值写入变量。
解决方案
如果你想收集循环的结果,你必须在循环中输出一些东西。这应该足够了..如果我没看错的话
$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
推荐阅读
- c - 为什么 sigaction 调用核心转储
- xamarin - Xamarin:InitializeComponent() 太复杂
- python - 在包含所有依赖项的 ac 程序中嵌入 python
- javascript - 为什么用户在删除后无法选择图像?
- javascript - 基于屏幕尺寸的功能
- angular - 使用承诺删除后如何刷新我的列表
- c# - 这是我应该编码我的游戏以在玩家死亡后重置分数的正确方式吗?
- tensorflow - 在 Keras/Tensorflow 中延迟梯度更新
- java - Java ClassFile 附加字节?
- c# - 获取 OAuth 令牌以读取 Outlook 电子邮件时使用的“范围”值