Система. Uri. EscapeUriString (), казалось, не сделал ничего, но Системы. Uri. Escape Данные Строка () работал на меня.
вы также можете использовать rsync. Кажется, он работает лучше для нескольких файлов, чем scp IMHO.
rsync -avzh /path/to/dir/ user@remote:/path/to/remote/dir/
Обновление
Вы можете использовать rsync через ssh, добавив переключатель '-e':
rsync -avzh -e ssh /path/do/dir/ user@remote:/path/to/remote/dir/
А как насчет подстановочных знаков или нескольких файлов?
scp file1 file2 more-files* user@remote:/some/dir/
Вы можете сделать это только с помощью открытых / закрытых ключей ssh. Или воспользуйтесь шпатлевкой, в которой можно установить пароль. scp не поддерживает ввод пароля в командной строке.
Вы можете найти инструкции для открытых / закрытых ключей здесь: http://www.softpanorama.org/Net/Application_layer/SSH/scp.shtml
#!/usr/bin/expect -f
spawn scp -r BASE.zip abhishek@192.168.1.115:/tmp
expect "password:"
send "wifinetworks\r"
expect "*\r"
expect "\r"