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, 5355 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 ...

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

Frage von fischle63 zum Thema Batch & Shell ...

Neue Wissensbeiträge
Mac OS X

Apple hat macOS High Sierra veröffentlicht

(3)

Information von Frank zum Thema Mac OS X ...

Viren und Trojaner

Ransomware or Wiper? RedBoot Encrypts Files but also Modifies Partition Table

(4)

Information von BassFishFox zum Thema Viren und Trojaner ...

Notebook & Zubehör

WOL bei HP Notebooks

(8)

Erfahrungsbericht von Henere zum Thema Notebook & Zubehör ...

Heiß diskutierte Inhalte
Windows 10
gelöst Netzwerkkarte schaltet sich erst nach dem Logon ein (24)

Frage von DerWoWusste zum Thema Windows 10 ...

Windows Server
Seit IP Umstellung DC DNS Fehler (23)

Frage von Yaimael zum Thema Windows Server ...

Grafik
gelöst CAD Arbeitsplätze (17)

Frage von Diddi93 zum Thema Grafik ...

Weiterbildung
gelöst Fest angestellter Admin oder Systemhaus Admin mit Kundenbetreuung? (16)

Frage von Voiper zum Thema Weiterbildung ...