соединение cmd с powershell - PullRequest
       10

соединение cmd с powershell

1 голос
/ 21 марта 2012

Мне нужно записать вывод команды cmd DIR в переменную powershell (массив).Является ли это возможным?Мне это нужно, потому что я использую сценарии cmd в WinSCP (SFTP-клиент) и когда я подключен к серверу sftp, я могу использовать только команды cmd, а не powershell.Но мне нужно получить имена и размер файлов, которые находятся в удаленном каталоге, чтобы проверить, была ли передача успешной.Это мой скрипт, который подключается к sftp и загружает некоторые файлы:

C:\"Program Files"\WinSCP\winscp.com /console /command "option batch abort" "option confirm off" "open sftp://login:password@195.22.89.55" "cd import" "option transfer binary" "put C:\_ZbankyNaOdoslanie\*.gpg" "put C:\_ZbankyNaOdoslanie\*.chk" "close" "exit"

Спасибо.

1 Ответ

3 голосов
/ 21 марта 2012

Вы можете вызвать эту строку в PowerShell с помощью оператора вызова & и назначить ее stdout и / или stderr переменной.

Пример:

$output = & "C:\Program Files\WinSCP\winscp.com" /arg1 /arg2

Переменная $output будет массивом строк.Каждая строка вывода будет элементом массива.

Дополнительные примеры:

  • Просто стандартный вывод: $output = & "C:\Program Files\WinSCP\winscp.com" /arg1 /arg2 2>$null
  • Просто stderr: $output = & "C:\Program Files\WinSCP\winscp.com" /arg1 /arg2 1>$null
  • Оба: $output = & "C:\Program Files\WinSCP\winscp.com" /arg1 /arg2 2>&1
...