2010-08-08 36 views
4

我對PowerShell腳本進行了深入研究,並且對它的肌肉,靈活性和堅韌印象深刻,特別是與微軟的經典DOS命令行實現相比。基本上我希望社區能夠從您的體驗中獲得快速的勝利。什麼是您的最佳PowerShell超高效生產腳本?

什麼是您最好的PowerShell超高效率腳本?參與
規則腳本:

  • 只有一個答案每個腳本 - 你最好的,
  • 最好短小精悍,
  • 一般足以適用於羣衆,否則它可能不會得到許多投票的適用性,
  • 也提供使用您的腳本所需的任何上下文。謝謝。

發佈此問題的決定基於this questionthis question,因爲它們都沒有專門針對PowerShell。

我期待着使用您提供的腳本,並且知道其他人也會這樣做,特別是最好的腳本將被選爲頂部以便於選擇 - 這是對社區評估的極大利用。

聲明:我認識到像這樣的問題的優點經常引起高度爭議,但會發布並讓社羣決定。謝謝。

+0

社區wiki? – Marko 2010-08-08 23:37:28

+0

@Marko:感謝您的支持 - 我只是將其更改爲Community Wiki。 – 2010-08-08 23:43:57

回答

4

減少打字,減少錯誤並降低噪音。

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 
+0

'ql' =報價單?爲什麼不用'qw'(引語)像Perl一樣? – Gabe 2010-08-09 01:26:50

+0

好問題。我認爲這是快速列表。 它也適用於創建數字和函數的數組。不只是文字。 – 2010-08-10 01:50:56

3

遞歸返回所有文件從當前目錄,但目錄:

gci . *.* -rec | where { ! $_.PSIsContainer } 
+0

的確很方便。你也教過我簡單的PS:'gci' vs'Get-ChildItem' – 2010-08-09 17:25:28

+1

你也不需要'*。*','gci。 -r'就足夠了。 – 2010-08-11 14:50:28

+1

@凱斯:很酷。你甚至可以用'where'代替'?'使其更加簡潔。 – Andy 2010-08-11 14:55:35

2

考慮到參與的規則,這是不容易的選擇從我的阿森納最喜歡的......那麼,這是不是我的最好的超生產力腳本,但它適合所有的規則,並且它確實節省了將數據導出到CSV的秒數,我經常交互式地執行這些操作。

這是Export-Csv的一個簡單包裝,它將.CSV擴展添加到指定的輸出路徑,並告訴不要寫入類型信息(這是默認寫入的,並且使得.CSV文件不能被除PowerShell以外的所有應用程序讀取) 。

<# 
.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 
相關問題