У меня проблема с использованием PSCP в программе на C # для копирования файла с компьютера Unix на компьютер с Windows. Проблема возникает только тогда, когда в целевой папке на компьютере с Windows есть пробел. Например, следующее работает нормально: (ПРИМЕЧАНИЕ: IP-адрес и пароль были изменены для этого примера)
pscp.exe -pw MyPassword root@127.0.0.1:/etc/myfolder/myfile.opt C:\download
Но когда я изменю это на это:
pscp.exe -pw MyPassword root@127.0.0.1:/etc/myfolder/myfile.opt C:\download files
Я получаю следующую ошибку: более одного удаленного источника не поддерживается.
Я понимаю, что это потому, что PSCP интерпретирует пространство как другую цель. Но как я могу это сделать? Я пробовал все виды вещей, таких как кавычки и выход из космоса. Я перепробовал все следующее и ничего не работает:
pscp.exe -pw MyPassword root@127.0.0.1:/etc/myfolder/myfile.opt "C:\download files"
pscp.exe -pw MyPassword root@127.0.0.1:/etc/myfolder/myfile.opt C:\"download files"
pscp.exe -pw MyPassword root@127.0.0.1:/etc/myfolder/myfile.opt C:\download\\ files
Есть идеи?
Добавить точку в папку назначения. Следующее должно работать с приложением . на вашем примере:
источник
во-первых, как вы уже упоминали, на вашем пути есть пробелы. Поэтому было бы разумно использовать цитаты "C: \ download files". Во-вторых, как вы уже указали, вам нужно добавить ваше приложение в PATH, чтобы вызывать pscp без какого-либо странного пути. и третье. Используйте соглашения об именах, которые предотвращают этот беспорядок, вызванный цитированием всего.
Оба решают проблему, и вы выглядите в 100500 раз круче.
источник