這是令人難以置信的。這是test.ps1
文件中的PowerShell代碼片段:PowerShell mkdir別名+ Set-StrictMode -Version 2.奇怪的錯誤。爲什麼?
Set-StrictMode -Version 2
mkdir c:\tmp\1 # same with 'md c:\tmp\1'
開始cmd.exe
,導航與test.ps1
腳本文件夾,然後運行它:
c:\tmp>powershell ".\test.ps1"
這將產生以下錯誤:
The variable '$_' cannot be retrieved because it has not been set.
At line:50 char:38
+ $steppablePipeline.Process($_ <<<<)
+ CategoryInfo : InvalidOperation: (_:Token) [], ParentContainsEr
rorRecordException
+ FullyQualifiedErrorId : VariableIsUndefined
爲什麼?
它從PowerShell控制檯啓動時運行,但不啓動cmd.exe。我用更大的腳本發現了這個錯誤。這是一個WTF時刻。
這個簡單的腳本有什麼問題?
我使用了`New-Item'blah'-type directory`作爲解決方法。問題似乎只有`mkdir`和`md`別名 – Roman 2011-02-25 09:53:29
我打算接受這個答案,但註釋「避免在PowerShell腳本中使用別名,並且不會出現這樣的奇怪問題」。 – Roman 2011-03-31 18:04:44