Ich habe ein Problem mit PSCP in einem C # -Programm zum Kopieren einer Datei von einem Unix-Computer auf einen Windows-Computer. Das Problem tritt nur auf, wenn der Zielordner auf dem Windows-Computer ein Leerzeichen enthält. Zum Beispiel funktioniert Folgendes einwandfrei: (HINWEIS: Die IP-Adresse und das Kennwort wurden für dieses Beispiel geändert.)
pscp.exe -pw MyPassword [email protected]:/etc/myfolder/myfile.opt C:\download
Aber wenn ich es so ändere:
pscp.exe -pw MyPassword [email protected]:/etc/myfolder/myfile.opt C:\download files
Ich erhalte die folgende Fehlermeldung: Mehr als eine Remote-Quelle wird nicht unterstützt.
Mir ist klar, dass PSCP den Raum als ein anderes Ziel interpretiert. Aber wie kann ich das machen? Ich habe alle möglichen Dinge ausprobiert, wie es in Anführungszeichen zu setzen und dem Raum zu entkommen. Ich habe alles Folgende ausprobiert und nichts funktioniert:
pscp.exe -pw MyPassword [email protected]:/etc/myfolder/myfile.opt "C:\download files"
pscp.exe -pw MyPassword [email protected]:/etc/myfolder/myfile.opt C:\"download files"
pscp.exe -pw MyPassword [email protected]:/etc/myfolder/myfile.opt C:\download\\ files
Irgendwelche Ideen?
Fügen Sie dem Zielordner einen Punkt hinzu. Folgendes sollte mit dem angehängten funktionieren . zu Ihrem Beispiel:
quelle
Nun, zuerst haben Sie, wie Sie bereits erwähnt haben, Leerzeichen auf Ihrem Weg. Es ist daher ratsam, Anführungszeichen "C: \ Dateien herunterladen" zu verwenden. Zweitens müssen Sie, wie Sie bereits betont haben, Ihre Anwendung zu Ihrem PATH hinzufügen, um pscp ohne seltsamen Pfad aufzurufen. und drittens. Verwenden Sie Namenskonventionen, die dieses Durcheinander verhindern, indem Sie alles zitieren.
Beide lösen das Problem und Sie sehen 100500 mal cooler aus.
quelle