【问题标题】:PowerShell Code Tidy or Reformat? [duplicate]PowerShell 代码整洁还是重新格式化? [复制]
【发布时间】:2011-04-26 00:26:22
【问题描述】:

可能重复:
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

即,选项卡 If 语句等,我知道它们是使用 VB 执行此操作的工具,但我还没有看到任何用于 Powershell 的工具?

【问题讨论】:

  • Gary,您的问题中的所有格式都丢失了,请使用您问题中的代码标签和提供的代码标签。

标签: powershell


【解决方案1】:

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

【讨论】:

  • 在发布多个问题的复制和粘贴样板/逐字答案时要小心,这些往往会被社区标记为“垃圾邮件”。如果您这样做,则通常意味着问题是重复的,因此请将它们标记为:stackoverflow.com/questions/2987176
【解决方案2】:

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

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

【讨论】:

    【解决方案3】:

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

    【讨论】:

      【解决方案4】:

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

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

      不保证可靠性。对于大量使用单行块或关闭不在单独行中的块的代码,它可能会做一些奇怪的事情。但除此之外,它可能会起作用。

      【讨论】:

        【解决方案5】:

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

        【讨论】:

        猜你喜欢
        • 2011-01-16
        • 2010-12-13
        • 2011-04-20
        • 2020-04-09
        • 2011-12-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-09
        相关资源
        最近更新 更多