Отправлять канал в качестве аргумента внешней программе в Powershell? - PullRequest
0 голосов
/ 12 июня 2018

Я получаю следующую ошибку при запуске команды для поиска последнего измененного каталога в моем пути: удаленно из PowerShell:

head: термин «head» не распознается как имяКомандлет, функция, файл сценария или работающая программа.Проверьте правильность написания имени или, если путь был указан, убедитесь, что путь правильный и попробуйте снова.

At line 1: char: 95
+ ... d /somedir ; (lastmod=$(ls -tda -- */ | head -n 1); ....

Я выполняю код что-то вроде следующего:

& plink "bob@server" "cd /somedir ; (lastmod=$(ls -tda -- */ | head -n 1); ls -la $lastmod)"

Ответы [ 2 ]

0 голосов
/ 12 июня 2018

Просто чтобы добавить ответ Брюса, вы также можете убрать специальный символ из строки в двойных кавычках, используя серьезный акцент (`), который является escape-символом в powershell.

& plink "bob@server" "cd /somedir ; (lastmod=$(ls -tda -- */ `| head -n 1); ls -la $lastmod)"

Это означает, что если вам нужны переменные внутри вашей строки, вы все равно можете использовать специальные символы.

0 голосов
/ 12 июня 2018

Вы заключили свои команды в двойные кавычки, поэтому знаки $ расширяются с помощью PowerShell.Если вы используете одинарные кавычки, этого не произойдет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...