代码之家  ›  专栏  ›  技术社区  ›  John K

你最好的PowerShell超生产力脚本是什么?

  •  4
  • John K  · 技术社区  · 6 年前

    我要进入 PowerShell 它的肌肉、灵活性和毅力给我留下了深刻的印象,尤其是与微软经典的DOS命令行实现相比。基本上,我希望社区能从你的经验中快速获益。

    你最好的PowerShell超生产力脚本是什么?
    剧本的交战规则:

    • 每个答案只有一个脚本-你最好的,
    • 最好是短而甜,
    • 足够普遍,适用于大众,否则它可能不会获得很多适用性投票,
    • 还要提供使用脚本所需的任何上下文。谢谢。

    提出这个问题的决定是基于 this question this question 因为两者都不是专门针对PowerShell的。

    我期待着使用你提供的脚本,也知道其他人也会这样做,尤其是最好的脚本将被选为最容易挑选的脚本——这是对社区评估的一大利用。

    免责声明:我意识到像这样的问题的优点经常会引起激烈的争论,但我会发帖,让社区来决定。谢谢

    3 回复  |  直到 7 年前
        1
  •  4
  •   Doug Finke    14 年前

    减少打字,减少错误,减少噪音。

    Function ql {$args}
    
    ql tom john harry | % {$_}
    

    没有 ql 函数需要添加引号和逗号,

    "tom", "john", "harry" | % {$_ }

    月份清单

    $months = ql Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec
    
        2
  •  3
  •   Andy    14 年前

    递归返回所有 文件夹 从当前目录,但是 目录:

    gci . *.* -rec | where { ! $_.PSIsContainer }
    
        3
  •  2
  •   Roman Kuzmin    14 年前

    考虑到 交战规则 从我的武器库中选择一个最喜欢的东西并不容易,这确实不是我最好的超生产力脚本,但它符合所有规则,而且在将数据导出到CSV时,它确实节省了几秒钟,而我经常以交互方式这样做。

    这是导出Csv的一个简单包装,它添加了。CSV扩展到指定的输出路径,并告知不要写入类型信息(默认情况下是写入的,这使得除PowerShell之外的所有应用程序都无法读取.CSV文件)。

    <#
    .SYNOPSIS
        Export-Csv + auto CSV extension + NoTypeInformation
    
    .DESCRIPTION
        Parameters are standard Export-Csv parameters but:
        -Path: extension .CSV is added if not yet
        -NoTypeInformation: the switch is added if not yet
    #>
    
    param
    (
        $Path
    )
    
    if ($Path -and $Path -notlike '*.csv') {
        $PSBoundParameters['Path'] = $Path + '.csv'
    }
    
    if (!$PSBoundParameters.ContainsKey('NoTypeInformation')) {
        $PSBoundParameters.Add('NoTypeInformation', $true)
    }
    
    $input | Export-Csv @PSBoundParameters