Powershell,检查文件是否包含比列表中更多的对象

时间:2017-06-15 15:11:52

标签: powershell scripting

我正在创建一个脚本,它循环遍历目录中的文件,读取它们,并检查它们是否有不在允许列表中的组。

到目前为止我所拥有的是:

$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列表中的组,则将其输出到文件。然而,它只是输出所有文件内容。我也无法在输出中添加文件名,我尝试的所有内容都没有输出名称

谢谢!

1 个答案:

答案 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