Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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, 5328 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 ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Batch & Shell
gelöst Batch Problem bei einer For Schleife (2)

Frage von Juergen42 zum Thema Batch & Shell ...

Batch & Shell
gelöst Spezielles Batch Problem mit Zahlen 20 + 29 (2)

Frage von narthan zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (21)

Frage von Xaero1982 zum Thema Microsoft ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...

Windows Update
Treiberinstallation durch Windows Update läßt sich nicht verhindern (14)

Frage von liquidbase zum Thema Windows Update ...

DSL, VDSL
Problem mit variernder Internetgeschwindigkeit (12)

Frage von schaurian zum Thema DSL, VDSL ...