从目录中获取文件夹并使用sigheck64为所有这些文件夹运行并将结果保存到文件

时间:2019-07-14 18:28:01

标签: powershell

我试图列出目录中的所有文件夹,然后运行sigcheck,并使用路径循环所有这些$ folder。例子sigcheck64 checkthisdirectory / $ folders / download

$directory = dir E:\Users -Directory | Select BaseName
$SigcheckPath="C:\Windows\temp\sigcheck.exe"

foreach ($dir in $directory){
& $SigcheckPath -nobanner -a -h -s -vt -c E:\Users\$directory\Downloads > C:\Users\Admin\Desktop\$directory.csv }

第一个脚本应获取在指定目录E:\ Users

中找到的所有文件夹

并使用sigcheck尝试上述文件夹中的所有目录,然后将结果保存到具有特定$目录名称的.csv文件中。

1 个答案:

答案 0 :(得分:2)

当前脚本中存在两个问题:

$directory = dir E:\Users -Directory | Select BaseName

这将创建具有BaseName属性的新对象,而不仅仅是将BaseName字符串直接返回到$directory,因此将其更改为:

$directory = dir E:\Users -Directory | Select -Expand BaseName

foreach()循环中,您应该引用$dir(循环中的当前项),而不是$directory(这是我们要遍历的整个数组):

foreach ($dir in $directory){
  & $SigcheckPath -nobanner -a -h -s -vt -c E:\Users\$dir\Downloads > C:\Users\Admin\Desktop\$dir.csv 
}