我试图列出目录中的所有文件夹,然后运行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文件中。
答案 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
}