【问题标题】:get folders from a directory and run them with sigheck64 for all those folders and save results to file从目录中获取文件夹并使用 sigheck64 为所有这些文件夹运行它们并将结果保存到文件
【发布时间】:2019-07-14 18:28:01
【问题描述】:

我正在尝试列出目录中的所有文件夹并使用路径运行 sigcheck 以循环所有这些 $ 文件夹。例如 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 对上述文件夹中的所有目录进行尝试,然后将结果保存到具有特定 $directory 名称的 .csv 中。

【问题讨论】:

    标签: powershell


    【解决方案1】:

    当前脚本中有两个问题:

    $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 
    }
    

    【讨论】:

    • 谢谢您,它运行良好。尽管它创建了太多文件,但我现在已经为它编辑了代码来执行多个目录。 $directory = dir E:\Users - foreach ($dir in $directory){ & $SigcheckPath -nobanner -a -h -s -c E:\Users\$dir\$path1 > C:\Users\Admin\Desktop\$dir-$path1-01.csv | & $SigcheckPath -nobanner -a -h -s -c E:\Users\$dir\$path2 > C:\Users\Admin\Desktop\$dir-$path2-01.csv } { Get-Content C:\Users\Admin\Desktop\$dir-$path1-01.csv, C:\Users\Admin\Desktop\$dir-$path2-01.csv | Select-Object -Unique | Set-Content -Encoding ASCII joined.csv }
    • 有没有办法可以将所有文件合并在一起?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-04
    • 1970-01-01
    • 2016-12-11
    • 1970-01-01
    • 2018-07-20
    • 2012-10-26
    相关资源
    最近更新 更多