scp verursacht "'C: \ Program' wird nicht als intern erkannt ..."

490
J. Dolde

Ich versuche, scpeine Datei von einem lokalen Computer zu einem Remote-Computer mit folgendem Befehl zu erstellen:

scp "local/file/path/file.txt" user@remote.server:"remote/file/path" 

Nachdem Sie das Kennwort des Remote-Benutzers eingegeben haben, wird folgende Fehlermeldung angezeigt:

'C:\Program' is not recognized as an internal or external command, operable program or batch file. lost connection

Es ist nichts offensichtlich, was diesen Fehler verursachen sollte. Keine Dateipfade enthalten "C: \ Program". Diese ähnliche Frage war nicht hilfreich. Ich bin in der Lage, ssh in die entfernte Maschine erfolgreich zu sägen.

Ich möchte die Verwendung von Filezilla, WinSCP oder ähnlichen Programmen vermeiden. Dieser Befehl muss in ein Skript aufgenommen werden.

Was könnte diesen Fehler verursachen?

BEARBEITEN:

Der Befehl lautet

scp "home/c/users/administrator/desktop/test.txt" administrator@defaultserver:"home/c/users/administrator/desktop" 

EDIT2:

Es scheint, als ob der Fehler geworfen wird, bevor Dateipfade berücksichtigt werden. Beim Ausführen des Debuggers wird vor dem Fehler die folgende Meldung angezeigt:

debug1: Sending command: scp -v -t /tmp 

Ich habe OpenSSH als meinen SSH-Server heruntergeladen. Ich habe es nach ~ / Program Files / extrahiert, was scheinbar die einzige Instanz ist, in der das Verzeichnis relevant ist. Wenn Sie den Installationsort des SSH-Servers ändern, wird dieser Fehler möglicherweise geändert.

-1
Immer wenn Sie einen Pfad angeben müssen, der ein Leerzeichen in einem oder mehreren Ordnernamen enthält (z. B. "\ Programme"), müssen Sie die gesamte Dateispezifikation in Anführungszeichen setzen, z. B. "C: \ Programme \ Microsoft \ Blah Blah \ program". exe " Bill Hileman vor 5 Jahren 0
Es wäre hilfreich, wenn Sie die von Ihnen verwendete * actual * -Befehlszeile präsentieren könnten. Daniel B vor 5 Jahren 0
Ich habe meinen Beitrag mit dem richtigen Befehl aktualisiert. J. Dolde vor 5 Jahren 0
Gibt es einen Grund, warum Sie keine absoluten Pfade verwenden? Es scheint, dass Sie beabsichtigten, dies zu tun. Versuchen Sie, wenn möglich, sowohl den SSH-Client als auch den Server mit "-vvv" auszuführen, um mehr Informationen zu erhalten. Vielleicht können Sie erkennen, wo der Pfad "Programmdateien" zum Tragen kommt. Daniel B vor 5 Jahren 0
Ich habe ein wenig mehr gesucht und es scheint, dass der Fehler auftritt, bevor ein Dateipfad übergeben wird. J. Dolde vor 5 Jahren 0
Die Installation einer Anwendung unter Linux in einem Pfad mit einem Leerzeichen im Namen erfordert Probleme. Während * Sie * Leerzeichen ausschließen oder den Pfad in Anführungszeichen setzen können, um den Speicherplatz zu erhalten, besteht kein Grund zu der Annahme, dass das Programm dafür eingestellt wurde. DrMoishe Pippik vor 5 Jahren 0
Aha. Ich hatte den Eindruck, dass scp eingebaut ist, das muss ich später überprüfen. Daniel B vor 5 Jahren 0
Verstehe ich richtig, dass Ihr Server Linux ist? Sie haben den OpenSSH-Server heruntergeladen? (Warum? OpenSSH ist in allen großen Linux-Distributionen integriert.) Und Sie legen es in den Ordner "Program Files" Ihres Benutzer-Home-Verzeichnisses ab. Nochmals warum? Das alles macht kaum Sinn. Martin Prikryl vor 5 Jahren 1

1 Antwort auf die Frage

0
Prashast

Versuche dies :

scp /Users/PrashastKumar/Desktop/sample2.pdf prashasht@backup-new.xxx.com:/tmp 

ohne Anführungszeichen. Das funktioniert für mich.

Leider hat das nicht funktioniert. Bei weiterer Prüfung scheint der Dateipfad nicht berücksichtigt zu werden, bevor der Befehl fehlschlägt, siehe oben unter Bearbeiten 2. J. Dolde vor 5 Jahren 0