【发布时间】:2020-07-08 07:14:44
【问题描述】:
有没有办法阻止PSScriptAnalyzer 突出显示alias 警告?例如
'rm' is an alias of 'Remove-Item'. Aliases can introduce possible problems and make scripts hard to maintain. Please consider changing alias to its full content.
PowerShell 中的别名非常有用。我有一个简单的规则:我只在脚本中使用 rational 内置别名(我忽略了奇怪的别名)。为什么?好吧,这些特定别名中的大多数现在已经 13 年了,并且从未改变过(PowerShell 1.0 发布于 2006 年 11 月 14 日)。因此,例如,% 或 ls 或 cd 在 99.99% 的情况下是可靠的。我认为 99.99% 的可靠性“足够好”。 all PowerShell StackOverflow 问题上重复最多的一条评论可能是“注意:不建议在 PowerShell 脚本中使用别名,因为它们可以更改!”(不是我经常想知道的谁推荐的?上帝?;-))
但是,VSCode 中的PSScriptAnalyzer 将所有别名突出显示为问题,因此我当前的 7,000 行脚本有 488 个这样的“问题”。有没有办法告诉PSScriptAnalyzer 我喜欢别名,我打算使用别名来获得它们给我的更简洁、清晰和可读性大大提高的代码,所以我不认为它们是问题?
【问题讨论】:
-
“从未改变” - 事实并非如此。在最近的版本中删除了许多别名
-
我可以相信马蒂亚斯。但是,我使用的别名 是 的“从未改变过”的种类。例如
%、ls、cd等。我从来没有使用过像rvpa这样更exotic(坦率地说是奇怪)别名的人(Resolve- Path)、rwmi(Remove-WmiObject)、sajb(Start-Job) 等。我只使用那些超可靠的 - 而超可靠的意思是“13 年来从未改变”和“我每次使用 PowerShell 时经常使用的那种命令”(rvpa从不属于此类)。 -
sc -> Set-Content在 5.1 中有效,在 6.2 中被删除¯\_(ツ)_/¯不管:是的,您可以禁止个别规则。打开命令面板(Shift+Ctrl+P),搜索“Select PSScriptAnalyzer Rules”并取消选中PSAvoidUsingCmdletAliases -
如果你真的想让你的代码不可移植,难以阅读,而且只是丑陋的 [grin] ... PSScriptAnalyzer 可以选择禁用各种测试 - 和可以在每个脚本/行/所有内容的基础上这样做。说明在 PSSA 网站上。
-
我可以绝对肯定地说,“无法辨认”不是真的。例如
dir D:\ | more。我打赌超过一百万美元,你会非常很难找到一个具有基本编程能力的人会发现这个“难以理解”。我知道你反对化名,我只是发现几乎是宗教上坚持从不使用化名(以及几乎怨恨投射到任何敢于的人身上!)有点...... 令人困惑。我完全捍卫/支持你的不使用别名的权利,我只是觉得它有些“僵化”。 :-)
标签: powershell visual-studio-code aliases psscriptanalyzer