Как упоминал Лоран, вы можете переопределить файловый дескриптор Stderr, чтобы захватить вывод stderr для лучшего сообщения об ошибке. Лично я предпочитаю использовать метод CombinedOutput
для команды, если выполняешь что-то относительно простое:
cmd := exec.Command("find", "/", "-maxdepth", "1", "-exec", "wc", "-c", "{}", "\\")
output, err := cmd.CombinedOutput()
if err != nil {
fmt.Println(fmt.Sprint(err) + ": " + string(output))
return
}
fmt.Println(string(output))
Вот ссылка play.golang.org для приведенного выше примера: http: // play. golang.org/p/z8k9zO755P
Вы можете использовать клиент scp, который поставляется с putty pscp. Вы можете использовать pscp в командной строке, как scp в командной строке Linux.
Cygwin . Вы можете объединить мощь командной строки sftp с мощью сценариев BASH . Все это в Windows!
Вы можете проверить SecureFX от VanDyke. http://www.vandyke.com/products/securefx/
или MKS Toolkit для системных администраторов http://mkstoolkit.com/products/tk/ds_tkother.asp
Не бесплатно, но посмотрите на edtFTPnet / PRO комплексный механизм сценариев, поддерживающий SFTP в Windows.
Вот пример сценария:
# Sample SFTP script
set remotehost=edtmobile
set user=javaftp
set password=javaftp
set protocol=sftp
set localdir=D:\work\tmp
# connect to the server
open
# change dir
cd remote/test
# put the local file test.txt to the server as mytest.txt
put test.txt mytest.txt
# disconnect
close