PowerShell псевдоним mkdir + Set-StrictMode -Version 2. Странная ошибка. Почему?

Это что-то невероятное. Это фрагмент кода PowerShell в файле test.ps1 :

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.

Что не так с этим простым скриптом?

9
задан Peter Mortensen 21 August 2015 в 14:23
поделиться