PowerShell Code Tidy还是Reformat?

时间:2011-04-26 00:26:23

标签: powershell

  

可能重复:
  Is there a PowerShell code formatter / pretty printer?

有没有人知道您可以用来重新格式化/整理Powershell代码的工具: -

例如: -

if ($c -eq "Cat") 
{
$a="Bubble" 
}
else
{
$a="Trouble"
}
Write-Host $a

要: -

if ($c -eq "Cat") 
{
    $a="Bubble" 
}
else
{
    $a="Trouble"
}
Write-Host $a

即,Tabs If Ifments等,我知道它们是用VB做的工具,但我还没有看到任何Powershell呢?

5 个答案:

答案 0 :(得分:5)

使用Notepad++进行快速测试表明TextFX-> TextFX Edit -> Reindent C++宏在您的示例中按预期工作。不知道它处理更复杂的样本有多好。

另外值得注意的是,NP ++为PowerShell提供了语言格式化宏。出乎意料的是,PowerGui脚本编辑器似乎没有一个整洁的功能。

答案 1 :(得分:4)

快速更新 - 它现在在GitHub上:https://github.com/DTW-DanWard/PowerShell-Beautifier 我在PowerShell中编写了一个PowerShell漂亮的打印机/代码清理器。它清除空白区域,缩进代码组,用命令替换别名,修复命令,参数,类型等等。您可以使用它来重新格式化文件或读取源文件并将结果输出到不同的文件中。 / p>

答案 2 :(得分:2)

适用于您的代码的快速涂鸦:

$tab = '  '
$indent = 0

switch -regex -file ./x.ps1 {
  '{\s*$'   { $tab * $indent++ + $_ }
  '^\s*}'   { $tab * --$indent + $_ }
  '^\s*$'   { "" }
  '[^{}]'   { $tab * $indent + $_ }
}

无法保证可靠性。使用大量使用单行块或关闭不在单独行中的块的代码可能会发生奇怪的事情。但除此之外,它可能会奏效。

答案 3 :(得分:2)

如果您使用gvim(和powershell plugins),您可以随时通过键入(当您处于命令模式时)缩进代码的所有行: gg=G

答案 4 :(得分:0)

可能很难找到它的Windows版本,但请查看http://www.gnu.org/software/indent/。它可以很好地处理PowerShell代码。