Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Batch Skript Robocopy unter Windows 7 - Problem mit Pfad und Variable

Frage Entwicklung Batch & Shell

Mitglied: Viprex

Viprex (Level 1) - Jetzt verbinden

06.11.2009 um 18:45 Uhr, 13954 Aufrufe, 5 Kommentare, 1 Danke

Hallo,

mit folgendem Skript habe ich mir unter Windows XP eine Möglichkeit gebastelt, bequem Dateien mit Robocopy zu kopieren. Dem Skript wurden dabei einfach nur Quell und Zielpfad mitgeteilt. Hier der Codeschnipsel:

01.
@echo off 
02.
@cls 
03.
 
04.
@echo ############################################################################### 
05.
@echo #################### Batch Datei zum Kopieren mit Robocopy #################### 
06.
@echo ############################################################################### 
07.
 
08.
:Start 
09.
@echo ------------------------------------------------------------------------------- 
10.
@set source= 
11.
@set /p source=Bitte Quellpfad eingeben:  
12.
@echo. 
13.
 
14.
@set target= 
15.
@set /p target=Bitte Zielpfad eingeben:  
16.
@echo ------------------------------------------------------------------------------- 
17.
@echo Folgende Pfade wurden bernommen: 
18.
@echo.  
19.
@echo Quelle: "%source%" 
20.
@echo. 
21.
@echo Ziel: "%target%" 
22.
@echo. 
23.
 
24.
:korrekt 
25.
@set /p korrekt=Ist dies korrekt (y/n):  
26.
@if not ´%korrekt%´==´´ set choice=%choice:~0,1% 
27.
@if ´%korrekt%´==´y´ goto copy 
28.
@if ´%korrekt%´==´n´ goto start 
29.
@ECHO "%korrekt%" ist keine gueltige Eingabe! 
30.
@echo. 
31.
@goto korrekt 
32.
 
33.
:copy 
34.
@echo. 
35.
@robocopy "%source%" "%target%" /MIR /R:1 /W:1 /NFL /ETA  
36.
goto end 
37.
 
38.
:end 
39.
@echo. 
40.
@echo ############################################################################### 
41.
@echo ############################## Batch Skript Ende ############################## 
42.
@echo ############################################################################### 
43.
pause
Leider funktioniert das Skript unter Windows 7 Professional x64 nicht wie gewünscht.

Das Skript liegt an folgendem Speicherort: "W:\Backups\Skripte\robocopy_eingabe.bat"
Rufe ich das Skript mit einem Doppelklick an diesem Ort auf, erhalte ich ein merkwürdiges Ergebnis. Wenn ich als Quelllaufwerk "w:" und als Ziellaufwerk "r:" wähle, kopiert Robocopy den Ort "w:\Backup\Skripte" und nicht den eingegeben Quellpfad "w:"!

f274875d5d42905488328be45fef3768-zwischenablage02 - Klicke auf das Bild, um es zu vergrößern

Rufe ich das Skript am selben Ort "(W:\Backup\Skripte\robocopy_eingabe.bat") auf und wähle als Quelle "f:" und als Ziel "q:", funktioniert das Skript wie gewünscht.

0f907c2e9d3a62076e1e3693877923f8-zwischenablage03 - Klicke auf das Bild, um es zu vergrößern

Kann sich jemand erklären, warum das so ist? Klar kann ich in diesem einem Fall auch die robocopy Zeile in der Kommandozeile eingeben, mich interessiert aber, warum das Skript hier querschießt.

BTW: Ich weiß nichtmal wirklich, ob es an Windows 7 liegt, da ich das Skript jetzt nicht unter XP testen kann. Falls es kein Windows 7 Problem ist (wovon ich jetzt mal ausgehe), würde ich gerne wissen, warum die Kommandozeile da so einen Schlenker macht.

Vielen Dank für eure Hilfe!
Mitglied: bastla
06.11.2009 um 20:51 Uhr
Hallo Viprex!

"W:" ist keine Pfad-, sondern nur eine Laufwerksangabe - wenn Du "W:\" meinst, musst Du es auch so eingeben.

Dass nicht automatisch der Root-Ordner des Laufwerkes verwendet wird, liegt daran, dass für jedes Laufwerk ein (eigener) "aktueller" Pfad verwaltet wird - das lässt sich leicht nachvollziehen, wenn Du an der Kommandozeile (von C:\ aus) eingibst:
01.
C:\>cd W:\Backups 
02.
C:\>dir W:
Mit dem ersten Befehl änderst Du auf Laufwerk W: den (dort) aktuellen Pfad, wechselst aber nicht zu diesem Laufwerk (dazu müsstest Du "cd /d" oder "pushd" verwenden).
Beim "dir"-Befehl ist dann auf dem Laufwerk W: bereits der "Backup"-Ordner aktuell und es wird (da Du keine explizite Pfadangabe, sondern eben nur eine Laufwerksangabe, verwendet hast) dessen Inhalt angezeigt.

Wurde vorher noch keine Änderung des aktuellen Pfades vorgenommen (wie es in Deinem Beispiel bei "f:" und "q:" der Fall gewesen sein muss), wird tatsächlich jeweils der Root-Ordner (also zB "f:\") verwendet.

Grüße
bastla
Bitte warten ..
Mitglied: GabbaGandalf
25.07.2013 um 09:19 Uhr
Hallo,

ich bin auf der Suche nach einem guten Robocopy-Batch-Script. Das vom Threadersteller erstellte Script sieht schon ziemlich gut aus, allerdings laufe ich in den selben Fehler.

Frage: Wäre folgendes möglich?

Statt
@robocopy "%source%" "%target%" /MIR /R:1 /W:1 /DCOPY:T

das hier:
@robocopy "%source%":\ "%target%":\ /MIR /R:1 /W:1 /DCOPY:T

Dann müsste man ja ja sozusagen nur den reinen Laufwerksbuchstaben d oder e oben eingeben.

Kanns gerade nicht testen, würde aber doch funktionieren, oder?

Nutzt ihr weitere Parameter beim Robocopy-Script? Ich möchte halt den Inhalt von meiner Datenfestplatte 1zu1 kopieren. Inkl. Timestamps etc.
Bitte warten ..
Mitglied: Viprex
25.07.2013 um 10:55 Uhr
Hallo,

ich setze das obige Skript noch immer ein und habe es eben nochmal schnell modifiziert, indem ich vorm robocopy Befehl direkt auf das Laufwerk wechsel.

01.
@echo off 
02.
@cls 
03.
 
04.
@echo ############################################################################### 
05.
@echo #################### Batch Datei zum Kopieren mit Robocopy #################### 
06.
@echo ############################################################################### 
07.
 
08.
:Start 
09.
@echo ------------------------------------------------------------------------------- 
10.
@set source= 
11.
@set /p source=Bitte Quellpfad eingeben:  
12.
@echo. 
13.
@set target= 
14.
@set /p target=Bitte Zielpfad eingeben:  
15.
@echo ------------------------------------------------------------------------------- 
16.
@echo Folgende Pfade wurden bernommen: 
17.
@echo.  
18.
@echo Quelle: "%source%" 
19.
@echo. 
20.
@echo Ziel: "%target%" 
21.
@echo. 
22.
@goto korrekt 
23.
 
24.
:korrekt 
25.
@set /p korrekt=Ist dies korrekt (y/n):  
26.
@if not ´%korrekt%´==´´ set choice=%choice:~0,1% 
27.
@if ´%korrekt%´==´y´ goto copy 
28.
@if ´%korrekt%´==´n´ goto start 
29.
@echo "%korrekt%" ist keine gueltige Eingabe! 
30.
@echo. 
31.
@goto korrekt 
32.
 
33.
:copy 
34.
@echo. 
35.
@set drive=%source:~0,2% 
36.
@%drive% 
37.
@robocopy "%source%" "%target%" /MIR /R:1 /W:1 /NFL /ETA  
38.
@goto end 
39.
 
40.
:end 
41.
@echo. 
42.
@echo ############################################################################### 
43.
@echo ############################## Batch Skript Ende ############################## 
44.
@echo ############################################################################### 
45.
@pause
Durch die Anweisung @%drive% habe ich versucht, erst auf das entsprechende Laufwerk zu wechseln und robocopy damit korrekt anzuweisen. Weiß gerade nicht, ob es auch mit Laufwerken klappt (habe auch keine freien Laufwerke zum Testen zur Verfügung).
Vielleicht kannst du es ja testen indem du einfach z. B. E: als Quelle und D: als Ziel einträgst. Bin gespannt obs funktioniert und würde mich über eine kurze Rückmeldung freuen
Bitte warten ..
Mitglied: bastla
25.07.2013 um 19:37 Uhr
Hallo Viprex!
Durch die Anweisung @%drive% habe ich versucht, erst auf das entsprechende Laufwerk zu wechseln
Was hat dich denn an den beiden Varianten
cd /d
bzw
01.
pushd 
02.
popd
gestört? Abgesehen davon ist das Wechseln auf das entsprechende Quell-Laufwerk nicht nötig, wenn der Quellpfad korrekt ist, was Du ja einfach mit einem
if exist "%source%"
vorweg prüfen kannst ...

Grüße
bastla

BTW: Das "@echo off" am Anfang des Batches macht die "@" an den jeweiligen Zeilenanfängen entbehrlich (bzw kontraproduktiv, wenn Du während der Testphase per "@echo on" die einzelnen Anweisungen vor der Ausführung auch anzeigen lassen willst) ...
Bitte warten ..
Mitglied: Viprex
27.07.2013 um 12:53 Uhr
Moin Bastla,

gestört hat mich gar nichts, ich habe nur in der Eile auf das zurückgegriffen, was ich kannte. Ich werde bei Gelegenheit mal deine Befehle probieren. Insbesondere kann die kurze Quellpfad Prüfung ja nochmal eingebaut werden.
Evtl. habe ich auch noch nicht ganz raus, welcher Befehl in welchem Kontext der richtige ist und welchen Pfad ändert. ich schaue mir das evtl. nochmal an.

Bzgl. der echo off Thematik. stimmt schon, ist mir auch bewusst. Ich hatte mir das nur irgendwann mal angewöhnt immer ein @ am Anfang der Zeile zu setzen. Mache mir da wohl zu viel Arbeit. Ist ja aber auch nicht so wild.
Jedenfalls vielen Dank für die Tipps!
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Problem mit UNC-Pfad ? powershell-skript
Frage von today12Batch & Shell2 Kommentare

Hallo liebe Community, ich hab ein kleines Verständnis Problem mit UNC-Pfade. ich möchte mein Skript auf ein Netzlaufwerk legen, ...

Batch & Shell
Variable in Batch-Skript anscheinend nicht wirksam
gelöst Frage von KorbinianHBatch & Shell4 Kommentare

Hallo, Ich habe ein Skript geschrieben, dass jede Sekunde einen zuvor eingegebenen Host anpingt und prüft, ob dieser online ...

Batch & Shell
Grosses Variablen Problem ( Batch)
gelöst Frage von clragonBatch & Shell30 Kommentare

Hey Leute. Ich bin auf ein doofes problem gestossen als ich durch variablen loopen wollte, da ich mir die ...

Batch & Shell
Windows 7: Problem mit CP in Batch
gelöst Frage von Maik87Batch & Shell3 Kommentare

Hallo zusammen, ich möchte mit einem Batch-Script unter Windows 7 ein wenig die Softwareverteilung vereinfachen. Plan ist es, via ...

Neue Wissensbeiträge
Windows 10

Autsch: Microsoft bündelt Windows 10 mit unsicherer Passwort-Manager-App

Tipp von kgborn vor 1 TagWindows 106 Kommentare

Unter Microsofts Windows 10 haben Endbenutzer keine Kontrolle mehr, was Microsoft an Apps auf dem Betriebssystem installiert (die Windows ...

Sicherheits-Tools

Achtung: Sicherheitslücke im FortiClient VPN-Client

Tipp von kgborn vor 1 TagSicherheits-Tools

Ich weiß nicht, wie häufig die NextGeneration Endpoint Protection-Lösung von Fortinet in deutschen Unternehmen eingesetzt wird. An dieser Stelle ...

Internet

USA: Die FCC schaff die Netzneutralität ab

Information von Frank vor 2 TagenInternet5 Kommentare

Jetzt beschädigt US-Präsident Donald Trump auch noch das Internet. Der neu eingesetzte FCC-Chef Ajit Pai ist bekannter Gegner einer ...

DSL, VDSL

ALL-BM200VDSL2V - Neues VDSL-Modem mit Vectoring von Allnet

Information von Lochkartenstanzer vor 2 TagenDSL, VDSL2 Kommentare

Moin, Falls jemand eine Alternative zu dem draytek sucht: Gruß lks

Heiß diskutierte Inhalte
Batch & Shell
Kann man mit einer .txt Datei eine .bat Datei öffnen?
gelöst Frage von HelloWorldBatch & Shell20 Kommentare

Wie schon im Titel beschrieben würde ich gerne durch einfaches klicken auf eine Text oder Word Datei eine Batch ...

Router & Routing
OpenWRT bzw. L.E.D.E auf Buffalo WZR-HP-AG300H - update
gelöst Frage von EpigeneseRouter & Routing11 Kommentare

Guten Tag, ich habe auf einem Buffalo WZR-HP-AG300H die alternative Firmware vom L.E.D.E Projekt geflasht. Ich bin es von ...

LAN, WAN, Wireless
WLAN Reichweite erhöhen mit neuer Antenne
gelöst Frage von gdconsultLAN, WAN, Wireless8 Kommentare

Hallo, ich besitze einen TL-WN722N USB-WLAN Dongle mit einer richtigen Antenne. Ich frage mich jetzt ob man die Reichweite ...

Router & Routing
Fritzbox Gastnetz - exposed Host - zur Sophos IPTV
Frage von medikopterRouter & Routing7 Kommentare

Hallo zusammen, ich habe eine Frage bezüglich des Fritz box Gastzugangs an einer Sophos UTM Home. An liebsten wäre ...