PowerShell не ожидает завершения работы приложений с графическим интерфейсом, прежде чем перейти к следующей команде.
Чтобы решить эту проблему, можно использовать трюк с конвейером, как показано в разделе Как заставить PowerShell ждать завершения каждой команды перед началом следующей?
.\WinSCP.exe ... | Out-Null
Хотя проще использовать интерфейс сценариев WinSCPwinscp.com
. Это консольный эквивалентwinscp.exe
Хотя интересно, что ваш синтаксис командной строки не создает winscp.log
файл журнала для меня в любом случае. Кажется, что PowerShell повреждает командную строку, когда -
используется для коммутаторов. С /
этим работает:
.\WinSCP.com /log=.\winscp.log /command "open davs://username:password@www.example.com/" "synchronize remote .\test-files /path/to/webdav/test-files" "exit"