37414
Goto Top

Robocopy Pfad mit Leerzeichen in Anführungsstrichen funktioniert nicht

Hallo,

ich nutze eine Batchdatei für das kopieren mit robocopy.
Darin habe ich einen Zielpfad, der Leerzeichen enthält.
Egal ob ich Anführungsstriche benutze und ob ich am Ende einen Backslash benutze oder nicht... der Kopiervorgang kann nicht gestartet werden.

Es handelt sich um das Verzeichnis "Program Files", welches das Problem macht.
Robocopy will dann nach "Program" kopieren und ignoriert den Zusatz "Files"...

Hier der Code:

@ echo off

set quelle=S:\install\AidA\kopieren\

set ziel=\\Mueller-r\C:\Program Files\AidA

robocopy "%quelle%" "%ziel%" /S /Z /LOG+:aida.log  

pause
exit

Das Ziel ist ein Netzwerkpfad. Die Dateien werden auf einen anderen Computer kopiert.

Habe schon eine Menge Möglichkeiten durchprobiert, nachdem ich bereits im Internet nach diesem Problem recherchiert hatte.
Leider hat bisher nichts davon funktioniert.

Danke und Gruss,
imebro

Content-Key: 300846

Url: https://administrator.de/contentid/300846

Printed on: April 24, 2024 at 09:04 o'clock

Member: AndreasHoster
AndreasHoster Apr 04, 2016 at 07:39:39 (UTC)
Goto Top
der Kopiervorgang kann nicht gestartet werden.
...
Robocopy will dann nach "Program" kopieren
Woher willst Du wissen, das er nach Program kopieren will, wenn der Kopiervorgang nicht gestartet werden kann?

Aber mal zum Grundlegenden zurück:
Nach ein bischen Recherche hätte man durchaus erkennen können, daß \\servername\c:\... definitiv keine gültige UNC Pfad Bezeichnung ist.
Probiers mal mit \\servername\c$\... dann sollte Dein Code laufen.

Und noch ein allgemeiner Hinweis zur Fehlersuche:
Alle Ausgaben mit @echo off unterdrücken hilft bei der Fehlersuche nun überhaupt nicht.
Wer keine Fehler sieht muß raten und das ist meistens nicht zielführend.
Mitglied: 114757
Solution 114757 Apr 04, 2016 updated at 12:35:23 (UTC)
Goto Top
Setze die Anführungszeichen an die richtige Stelle und ersetze den Dopppelpunkt durch ein Dollarzeichen, dann klappt das auch
@echo off
set "quelle=S:\install\AidA\kopieren"  
set "ziel=\\Mueller-r\C$\Program Files\AidA"  

robocopy "%quelle%" "%ziel%" * /S /Z /LOG+:aida.log  

pause
exit

Bist du sicher das du wirklich
\\Mueller-r\C:\Program Files\AidA

meinst und nicht die Administrative Freigabe:

\\Mueller-r\C$\Program Files\AidA

Denn eine Freigabe mit Doppelpunkt in einem Ordnernamen gibt es nicht!!!

Gruß jodel
Member: emeriks
emeriks Apr 04, 2016 at 07:43:31 (UTC)
Goto Top
Denn eine Freigabe mit Doppelpunkt gibt es eigentlich nicht.
nicht "eigentlich nicht" - definitiv nicht!
Mitglied: 114757
114757 Apr 04, 2016 updated at 07:45:16 (UTC)
Goto Top
Zitat von @emeriks:

Denn eine Freigabe mit Doppelpunkt gibt es eigentlich nicht.
nicht "eigentlich nicht" - definitiv nicht!
War so gemeint, sorry. Doppelpunkt in Pfaden sind ja sowieso Not allowed.
Member: Dr.Cornwallis
Dr.Cornwallis Apr 04, 2016 at 07:44:59 (UTC)
Goto Top
Hallo,

kannst du den Zielpfad Mappen?
Ansonsten musst du die Berechtigungen anpassen bzw. mit c$ das Ziel mappen und den Admin User dazu angeben(falls notwendig, je nachdem wie dein Netzwerk aufgebaut ist).

set ziel=\\Mueller-r\C$\Program Files\AidA


Grüße

Dr.
Member: Dr.Cornwallis
Dr.Cornwallis Apr 04, 2016 updated at 07:51:51 (UTC)
Goto Top
Oh da war ja ein Doppelpunkt beim C, also nichts mit Berechtigungen, einfach kein UNC Pfad, sorry face-smile
Mitglied: 37414
37414 Apr 04, 2016 updated at 08:11:27 (UTC)
Goto Top
Danke Euch für die schnellen Antworten.

Auch mit "$" stoppt der Kopiervorgang offenbar schon bei "Program" (von "Program Files").

In der Fehlermeldung steht:

Quelle: S:\install\AidA\kopieren" \Mueller-r\C$\Program\  
     Ziel: C:\Users\Max-Meier\Desktop\Files\AidA \S \Z \LOG+:aida.log

Fehler: Zugriff auf Quellverzeichnis S:\install\AidA\kopieren" \Mueller-r\C$\Program\  

Die Syntax für den Dateinamen, Verzeichnisnamen oder die Datenträgerbezeichnung ist falsch.

- Auffällig finde ich, dass in der Fehlermeldung (Quellangabe) am Ende ein Anführungsstrich gesetzt ist (siehe auch bei "Fehler").
- Weiterhin merkwürdig, dass das Ziel plötzlich der lokale Desktop der Person ist, die diese Batchdatei ausführt.
- Weiterhin steht bei "Quelle" und "Fehler" jeweils am Ende wieder lediglich "Program\"
- Auch merkwürdig ist, dass in der Fehlermeldung der Zielpfad nur mit einem Backslash angezeigt wird

Irgendwo ist da noch ein Haken...

Danke und Gruss,
imebro
Mitglied: 114757
114757 Apr 04, 2016 updated at 12:34:13 (UTC)
Goto Top
Hast du die Pfade wirklich "exakt" so wie ich oben im Code geschrieben habe gesetzt? Also Anführungszeichen vor der Variablen und am Ende?
Damit läuft das einwandfrei, solange der User überhaupt Zugriff auf die Administrativen Freigaben hat. Ohne Domäne gibt es da nämlich einen Fallstrick wenn man versucht auf diese Freigaben zuzugreifen, Stichwort UAC und LocalAccountTokenFilterpolicy.
Member: emeriks
emeriks Apr 04, 2016 updated at 08:27:21 (UTC)
Goto Top
Hast du die Pfade wirklich exakt so wie ich oben im Code geschrieben habe gesetzt? Also Anführungszeichen vor der Variablen und am Ende?
Nein, hat er ganz sicher nicht.
Mitglied: 114757
114757 Apr 04, 2016 updated at 08:30:53 (UTC)
Goto Top
Zitat von @emeriks:
Nein, hat er ganz sicher nicht.
Aha, du sitzt also neben ihm face-big-smile
Member: emeriks
emeriks Apr 04, 2016 at 08:32:13 (UTC)
Goto Top
Nein, aber so klar ist selbst meine Glaskugel.
Mitglied: 37414
37414 Apr 04, 2016 at 08:33:41 (UTC)
Goto Top
richtig.... hatte er nicht face-wink

Soweit ich es testen konnte, funktioniert es jetzt.

Danke Euch.

Schöne Grüße,
imebro
Mitglied: 114757
114757 Apr 04, 2016 updated at 12:33:48 (UTC)
Goto Top
Dann fehlt ja jetzt nur noch ein gelöst von deiner Seite.