我正在创建一个脚本,它循环遍历目录中的文件,读取它们,并检查它们是否有不在允许列表中的组。
到目前为止我所拥有的是:
$allowedGroups = 'group1', 'group2', 'group3'
$AssignedValue = Get-ChildItem -path "C:\Users\user\Desktop\ExampleComputer\*.txt"
ForEach ($file in $AssignedValue) {
$contents = Get-Content $file | select -skip 6
if ($contents -notin $allowedGroups ){
$contents | Out-file -Append -FilePath'C:\Users\user\Desktop\listofcomputers.txt'}
}
我想要发生的是,如果文件包含不在allowedGroup列表中的组,则将其输出到文件。然而,它只是输出所有文件内容。我也无法在输出中添加文件名,我尝试的所有内容都没有输出名称
谢谢!
答案 0 :(得分:2)
您可以从{"loginStatus":"Y","menuFunctions":[{"menuDisplayName":"My Document","menuId":"10127"},{"menuDisplayName":"Health
Topic","menuId":"10128","parentMenuId":"-1"},{"menuDisplayName":"Alerts","menuId":"10129","parentMenuId":"-1"},{"childMenus":[{"menuDisplayName":"Conditions","menuId":"10131","parentMenuI
d":"10130"},{"menuDisplayName":"Procedures and
Surgeries","menuId":"10132","parentMenuId":"10130"}]}
循环中的$file
变量中获取文件名。要查找不允许的组的名称,请使用Foreach
运算符。并使用-notcontains
运算符将这些名称的数组合并为一个字符串。
像这样:
-join