PowerShell / PowerShell/PSScriptAnalyzer

Invoke-ScriptAnalyzer -Recurse taking forever (60+ seconds) to finish

未关闭
#1,189 16 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

还没有人认领这个 Issue。

Area - Engine Area - Performance
主要语言
C#
星标
2.2k
派生
414
平均合并
13 小时 1 分钟
30 天内合并 PR
2

描述

To be honest, this is my first time ever I tried to use Invoke-ScriptAnalyzer. So please be patient with me and if I am doing things wrong please let me know. Most of the time I use defaults on VSCode but I wanted to play with it today a bit. I have very simple project with just few files. When I used -Recurse it's stuck. I am not sure if this is just my setup or I need to wait much much longer but it would seem weird for it to be waiting like that on 100 lines.

Keep in mind that my C:\Support\Github is actually hardlinked.

image

Now I am wondering if that is not being a problem overall for all my reports about broken stuff in VSCode where I get lots and lots of perf issues,, broken links. Notice how C: is actually missing from fsutil.exe output. I am not sure if that's supposed to be like that thou and how it would affect your tool.

I did move the project to Desktop or tried using OneDrive folder directly but it didn't change the output so maybe it's not related.

I did try this outside of VSCode with same results.

Steps to reproduce

Invoke-ScriptAnalyzer -Path C:\Support\GitHub\Dashimo -Recurse -Verbose

Expected behavior

Finishing up.

Actual behavior

PSScriptAnalyzer

Environment data

> $PSVersionTable

Name                           Value
----                           -----
PSVersion                      5.1.17763.316
PSEdition                      Desktop
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0...}
BuildVersion                   10.0.17763.316
CLRVersion                     4.0.30319.42000
WSManStackVersion              3.0
PSRemotingProtocolVersion      2.3
SerializationVersion           1.1.0.1

> (Get-Module -ListAvailable PSScriptAnalyzer).Version | ForEach-Object { $_.ToString() }

1.18.0
1.17.1
1.17.1

贡献指南

打开贡献指南

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

调研方向

首先,在使用 PSScriptAnalyzer 1.18.0 的 Windows PowerShell 5.1 上重现 Invoke-ScriptAnalyzer -Path C:\Support\GitHub\Dashimo -Recurse -Verbose,并比较递归和非递归运行。使用报告中的项目和硬链接位置调查递归路径处理;完成的标准是命令正常完成,并且回归由适当的测试覆盖。

由索引模型根据 Issue 内容生成。

评估

技术栈
powershell
领域
performance, tooling
Issue 类型
缺陷
难度
4/5
预计耗时
3-5 天
活跃度
停滞
描述清晰度
基本清楚
新手友好度
35/100

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。