有什么推荐的编码样式如何编写PowerShell脚本?
这与代码的结构无关(如果要使用模块,应使用多少个函数……)。这是关于“如何编写代码以使其可读”。
在编程语言中,有一些推荐的编码样式(要缩进什么,如何缩进-空格/制表符,在哪里换行,在哪里放括号等),但是我没有看到关于PowerShell的任何建议。
我特别感兴趣:
如何写参数
function New-XYZItem
( [string] $ItemName
, [scriptblock] $definition
) { ...
(我看到它更像是“ V1”语法)
要么
function New-PSClass {
param([string] $ClassName
,[scriptblock] $definition
)...
或(为什么要添加空属性?)
function New-PSClass {
param([Parameter()][string] $ClassName
,[Parameter()][scriptblock] $definition
)...
或(我在Jaykul的代码中看到的其他格式)
function New-PSClass {
param(
[Parameter()]
[string]
$ClassName
,
[Parameter()]
[scriptblock]
$definition
)...
要么 ...?
如何编写复杂的管道
Get-SomeData -param1 abc -param2 xyz | % {
$temp1 = $_
1..100 | % {
Process-somehow $temp1 $_
}
} | % {
Process-Again $_
} |
Sort-Object -desc
或(新行上的cmdlet名称)
Get-SomeData -param1 abc -param2 xyz |
% {
$temp1 = $_
1..100 |
% {
Process-somehow $temp1 $_
}
} |
% {
Process-Again $_
} |
Sort-Object -desc |
而如果有-begin
,-process
和-end
参数?如何使其更具可读性?
Get-SomeData -param1 abc -param2 xyz |
% -begin {
init
} -process {
Process-somehow2 ...
} -end {
Process-somehow3 ...
} |
% -begin {
} ....
要么
Get-SomeData -param1 abc -param2 xyz |
% `
-begin {
init
} `
-process {
Process-somehow2 ...
} `
-end {
Process-somehow3 ...
} |
% -begin {
} ....
缩进在这里很重要,什么元素也要放在新的行上。
我只介绍了我经常想到的问题。还有其他一些,但我想让这个Stack Overflow问题保持“简短”状态。
欢迎其他任何建议。