Добавление пользовательского ввода в команду Select-String - PullRequest
0 голосов
/ 14 мая 2018

В настоящее время я пытаюсь создать команду выбора строки, чтобы определить, появляются ли пользователи в моей компании в определенных каталогах. Моя текущая команда выглядит следующим образом:

Select-String -path "C:\filepath\*.csv" -Pattern "<string>" |
    Format-Table -Property LineNumber,Line,Path -Wrap |
    Out-File "C:\outfile.txt"

Текущая команда означает, что мне нужно каждый раз изменять содержимое параметра Pattern перед запуском скрипта. Вместо этого я хотел бы запросить мой ввод для строки при запуске сценария. Есть ли цикл while, который я могу добавить к этой команде, чтобы запросить ввод данных пользователем?

Спасибо

1 Ответ

0 голосов
/ 14 мая 2018

Добавьте это в начало вашего скрипта:

Param(
    [Parameter(Mandatory = $True)]
    [System.String]
    $Pattern
)

Select-String -Path C:\filepath\*.csv -Pattern $Pattern |
    Tee-Object -FilePath C:\outfile.txt |
    Format-Table -Property LineNumber, Line, Path -Wrap

Когда вы вызываете скрипт, атрибут гарантирует, что вы задали аргумент для -Pattern.Вы можете добавить дополнительные атрибуты, если хотите, чтобы это значение не было нулевым ([ValidateNotNullOrEmpty()]) и т. Д.

В качестве отступления, никогда не передавайте данные от форматеров.

...