Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

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 Problem Kopieren bzw. Prüfen von bestimmten Verzeichnissen

Frage Entwicklung Batch & Shell

Mitglied: DonLino

DonLino (Level 1) - Jetzt verbinden

03.10.2010 um 19:06 Uhr, 5360 Aufrufe, 6 Kommentare

Hallo zusammen,

zurzeit bin ich dabei ein kleines Batchscript zu schreiben was mir bestimmte Unterverzeichnisse auf ein Sicherungslaufwerk kopieren soll. Nach dem Kopieren soll die Ordner vom Quellverzeichnis wieder gelöscht werden, damit die NAS Box ein bisschen mehr Platz hat. Problem steht näher unten

Hallo zusammen,

zurzeit bin ich dabei ein kleines Batchscript zu schreiben was mir bestimmte Unterverzeichnisse auf ein Sicherungslaufwerk kopieren soll. Nach dem Kopieren soll die Ordner vom Quellverzeichnis wieder gelöscht werden, damit die NAS Box ein bisschen mehr Platz hat.

Ich habe ein Laufwerk D: wo es ein Rootverzeichnis mit einigen Unterverzeichnissen gibt.

In jedem dieser Unterverzeichnisse sind wieder Unterverzeichnisse mit verschiedenen Namen z.B. R3181_392 od. R3181_393 (Name von Imagedateien).

Sieht so aus:

D:\Daten\Test\PC_1\R3181_392\DateiXY
D:\Daten\Test\PC_1\R3181_393\DateiAB
D:\Daten\Test\PC_1\TestTest\TestDatei
D:\Daten\Test\PC_1\BlubBlub\Blabla

D:\Daten\Test\PC_2\R3181_392\DateiXY
D:\Daten\Test\PC_2\R3181_393\DateiAB
D:\Daten\Test\PC_2\TestTest\TestDatei
D:\Daten\Test\PC_2\BlubBlub\Blabla

D:\Daten\Test\PC_3\TestTest\TestDatei
D:\Daten\Test\PC_3\R3181_392\DateiXY
D:\Daten\Test\PC_3\R3181_393\DateiAB
D:\Daten\Test\PC_3\TestTest\TestDatei

Mein Script sieht bisher so aus (es kopiert auf ein Sicherungsverzeichnis und löscht anschließend vom Quellverzeichnis um Platz zu machen)

01.
@echo off 
02.
 
03.
xcopy D:\Daten\Test\* E:\Sicherung\Images\* /D /E /Y /I  
04.
 
05.
for /d %%i in ("D:\Daten\Test\*") do @rd /s /q "%%i" 
06.
@del /f /q "D:\Daten\Test\*"   
07.
 
08.
if errorlevel 1 goto error 
09.
:error 
10.
echo Das Kopieren und Löschen war nicht erfolgreich! 
11.
 
12.
pause
Nun möchte ich aber vor dem Kopieren alle Unterverzeichnisse in D:\Test\*.* durchlaufen und nur nach den Namen R3181 suchen. Die anderen Unterverzeichnisse mit einem anderen Namen sollen dabei nicht berücksichtigt werden. Wenn das Script alle Unterverzeichnisse mit den Namen R3181 gefunden hat, sollen nur diese auf das Sicherungslaufwerk kopiert werden.

Leider sind meine Batchkenntnisse nicht gerade herausragend und wollte hier um Rat fragen, ob mir vielleicht jemand einen Tip geben kann.

Über eine Antwort würde ich mich freuen.

PS: Hier und bei Google habe ich schon geschaut, aber nicht wirklich was hilfreiches gefunden.

Danke und viele Grüße,
DonLino
Mitglied: ctietje
03.10.2010 um 20:25 Uhr
warum dann nicht nur xcopy R3181_39?\* Ziel /s?
Bitte warten ..
Mitglied: bastla
03.10.2010 um 20:27 Uhr
Hallo DonLino und willkommen im Forum!

Du könntest es etwa so versuchen:
01.
@echo off & setlocal 
02.
set "Quelle=D:\Daten\Test" 
03.
set "Ziel=E:\Sicherung\Images" 
04.
 
05.
for /f "delims=" %%i in ('dir /s /b /ad "%Quelle%\R3181_*.*"') do set "Pfad=%%i" & call :ProcessDir "%%i" 
06.
goto :eof 
07.
 
08.
:ProcessDir 
09.
set "ZielPfad=%Ziel%%Pfad%\" 
10.
call set "ZielPfad=%%ZielPfad:%Quelle%=%%" 
11.
echo xcopy /dey %1 "%ZielPfad%" && echo rd /s /q %1 
12.
goto :eof
Damit Du einigermaßen entspannt testen kannst, werden die Befehle für das Kopieren und das Löschen (wird nur ausgeführt, wenn das Kopieren ohne Fehler beendet wurde) der Verzeichnisse nur ausgegeben - dafür sorgen die beiden "echo" in der Zeile 11; wenn's gut aussieht, einfach diese "echo" weg- (und dadurch den Batch machen) lassen ...

Grüße
bastla
Bitte warten ..
Mitglied: pieh-ejdsch
03.10.2010 um 20:33 Uhr
moin DonLino,

als erstes ins Verzeichnis wechseln und den Rest in einer FOR-Schleife abarbeiten
Ungetestet erst Testdaten nehmen!
01.
@echo off 
02.
pushd D:\Daten\Test 
03.
for /f "Tokens=*" %%i in ('dir  /s /b /ad "R3181*"') do (xcopy "%%i" "E:\Sicherung\Images\%%i" /D /E /Y /I&&@rd /s /q "%%i"||echo Das Kopieren und löschen war nicht erfolgreich!) 
04.
popD

[Edit] nagut etwas zu spät [/Edit]
Gruß Phil
Bitte warten ..
Mitglied: DonLino
03.10.2010 um 21:00 Uhr
hi bastla,

danke!

Ich habe mich mal an deinem Vorschlag versucht. Leider bekonmme ich den Fehler, dass er die Datei nicht finden kann.

Kann es sein, dass das Script versucht die Ordner mit dem Namen R3181 direkt unter Test zu finden? Denn unter dem Testverzeichnis befinden sich ja noch die Unterordner PC1, PC2, PC3 etc. Erst danach folgend die Imageordner mit dem Namen R3181_*.*.

@pieh-ejdsch:

Danke für den Vorschlag. Jedoch bekomme ich auch dort die Meldung, dass er die Datei nicht finden konnte.

Gruß,
DonLino ;)
Bitte warten ..
Mitglied: bastla
03.10.2010 um 21:06 Uhr
Hallo DonLino!
Kann es sein, dass das Script versucht die Ordner mit dem Namen R3181 direkt unter Test zu finden?
Nein - es wird ab dem als %Quelle% angegebenen Ordner nach allen passenden Unterordnern gesucht - kannst Du direkt an der Kommandozeile mit
dir /s /b /ad "D:\Daten\Test\R3181_*.*"
nachstellen ...

Grüße
bastla
Bitte warten ..
Mitglied: DonLino
03.10.2010 um 21:20 Uhr
Hallo bastla,

nun hat es geklappt ;)

Es lag an einem "*".

Das Script sieht dann nun so aus:

01.
@echo off & setlocal  
02.
set "Quelle=D:\Daten\Test"  
03.
set "Ziel=E:\Sicherung\Images"  
04.
 
05.
for /f "delims=" %%i in ('dir /s /b /ad "%Quelle%\R3181*"') do set "Pfad=%%i" & call :ProcessDir "%%i"  
06.
 
07.
goto :eof  
08.
 
09.
:ProcessDir  
10.
set "ZielPfad=%Ziel%%Pfad%\"  
11.
call set "ZielPfad=%%ZielPfad:%Quelle%=%%"  
12.
echo xcopy /dey %1 "%ZielPfad%" && echo rd /s /q %1  
13.
goto :eof
Vielen Dank für die Hilfe und noch einen schönen Abend ;)

Gruß,
DonLino
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
gelöst Batch: alle Ordner mit einem bestimmten Namen kopieren (4)

Frage von Remsboys zum Thema Batch & Shell ...

Microsoft
gelöst Batch Datei zum Kopieren bestimmter ordner mit Pfad (6)

Frage von eivlox zum Thema Microsoft ...

Batch & Shell
gelöst Verzeichniss überwachen Datei kopieren und umbenennen (6)

Frage von fischle63 zum Thema Batch & Shell ...

Neue Wissensbeiträge
Multimedia

Raspberry Pi als Digital-Signage-Computer

(1)

Information von BassFishFox zum Thema Multimedia ...

Windows Update

Novemberpatches und Nadeldrucker bereiten Kopfschmerzen

(15)

Tipp von MettGurke zum Thema Windows Update ...

Windows 10

Abhilfe für Abstürze von CDPUsersvc auf Win10 1607 und 2016 1607

(7)

Tipp von DerWoWusste zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Router & Routing
Freigabe aus anderem Netz nicht erreichbar (31)

Frage von McLion zum Thema Router & Routing ...

Visual Studio
Vb.net-Tool zum Erzeugen einer Outlook-E-Mail (24)

Frage von ahstax zum Thema Visual Studio ...

Batch & Shell
Batch Programm verhalten bei shoutdown -p (19)

Frage von Michael-ITler zum Thema Batch & Shell ...

Windows Netzwerk
Netzwerk Neustrukturierung (15)

Frage von IT-Dreamer zum Thema Windows Netzwerk ...