2017-02-09 2 views
1

Я пытаюсь выполнить поиск по файлам для строки, заданной в параметрах NodeJS.PowerShell param является пустой строкой, когда это не

param(
    [switch]$raw, 
    [string]$input 
) 

[string]$file = "*.log" 
if($raw) { $file = ".\raws\*.log" } 

Get-ChildItem -Recurse -Include $file | select-string $input 

Проблема заключается в том, что я получаю ошибку, что $input пуст: PowerShell says $input is empty.

Что я делаю неправильно?

+4

'$ input' - это [автоматическая переменная] (https://msdn.microsoft.com/en-us/powershell/reference/5.1/microsoft.powershell.core/about/about_automatic_variables), вы не должны использовать эту имя в вашем коде. Не уверен, что именно поэтому он ломается, но это, конечно, вводит в заблуждение. – TessellatingHeckler

+0

Это было бы @TessellatingHeckler. Большое спасибо. – Farcrada

+0

Возможный дубликат [странное различие между $ \ _ и \ [параметром (ValueFromPipeline = $ true) \]] (http://stackoverflow.com/questions/13502949/strange-difference-between-and-parametervaluefrompipeline-true) –

ответ

0

Благодаря @TessellatingHeckler за указание, что $input является зарезервированной/автоматической переменной и поэтому не может использоваться таким образом.