Использование команды в качестве параметра в PowerShell - PullRequest
1 голос
/ 30 сентября 2019

Я пытаюсь переместить некоторые файлы в подпапку относительно рекурсивно.

Я хочу использовать команду get-location и объединить ее со строкой ( "\ foo_1«), при использовании его в качестве параметра.

Так что get-location должен привести к« D: \ foo_2 », так что результат будет« D: \ »foo_2 \ foo_1"

Все время, будучи параметром отдельной команды:

Get-ChildItem -Path ".\*.wav" -Recurse | Move-Item -Destination (get-location + "string")

Я знаю, что могу просто использовать переменные, но я действительно хочучтобы понять это (если есть ответ). Заранее спасибо =)

1 Ответ

2 голосов
/ 30 сентября 2019

Вы можете использовать подвыражение, например:

Get-ChildItem -Path ".\*.wav" -Recurse | 
    Move-Item -Destination "$(Get-Location)\foo_1"

Структура $(...) сообщает PowerShell сначала выполнить содержимое скобок (т. Е. Выполнить Get-Location), а затем подставить результат встрока. Обратите внимание, что вы должны использовать двойные кавычки, так как эта функция не работает со строками в одинарных кавычках.

...