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 Inhalt von mehreren Unterordner kopieren und löschen mit Batch

Mitglied: Simon-MCP

Simon-MCP (Level 1) - Jetzt verbinden

05.10.2007, aktualisiert 07.10.2007, 14172 Aufrufe, 12 Kommentare

Kurz gesagt:
Ich habe mehrere Unterordner deren Inahlt ich per Batch-Script an 2 neuen Speicherplätzen ablegen will.

Hallo,

ich benötige ein Batch-File das mir aus einem Hauptordner genannt: "Sprachen" den kompletten Inhalt der Unterordner an 2 neuen Pfaden ablegt/verschiebt. Die Dateien am alten Pfad können gelsöcht oder wie gesagt verschoben werden.
Beispiel:
:: Hauptordner ::
- DE (in diesen Unterordnern befinden sich PDF-Dateien)
- ES
- FR
Hier sollte das Script also nun hin gehen und damit anfangen, den Inhalt des Ordners "DE" an 2 neuen Pfaden a + b hin kopieren. Danach die Dateien im Ordner DE löschen und mit Ordner "ES" fortfahren usw...

Ist so etwas überhaupt möglich ?

cu
Crus
Mitglied: Netzheimer
05.10.2007 um 09:57 Uhr
Zeichen zwischen /* und */ nicht mit tippen

@echo off
xcopy Quelle Ziel1 /E /K /I /H /F
xcopy Quelle Ziel2 /E /K /I /H /F
attrib -r -a -s -h Quelle /S


/* Löschen geht dann manuell am schnellsten denke ich */


/*
für Quelle den Quellort angeben
für Ziel1 den 1. Zielort
für Ziel2 den 2. Zielort
Option /E für Unterverzeichnisse mitkopieren
Option /K für Attribute mitkopieren
Option /I für Verzeichnis erstellen, wenn es nicht existiert
Option /H für versteckte Dateien mitkopieren
Option /F für Anzeiger der zu kopierenden Dateinamen
*/
Bitte warten ..
Mitglied: Simon-MCP
05.10.2007 um 10:06 Uhr
Hallo,

vielen Dank erstmal für deine schnelle Antwort, doch ich glaub das ist nicht ganz so wie ich es brauche.

Ich möchte jeweils nur den Inhalt der Unterordner DE, ES, FR an die beiden neuen Speicherplätze abspeichern und nicht die kompletten Ordner.
Die Unterordner DE, ES, FR usw. enthalten PDF Dateien. Diese PDF Dateien sollen an Pfad A und B abgelegt werden.
Bitte warten ..
Mitglied: Netzheimer
05.10.2007 um 10:43 Uhr
cd Hauptverzeichnis/Unterverzeichnis1
copy *.pdf /V ZielordnerA

cd\
cd Hauptverzeichnis/Unterverzeichnis2

usw.

In den Leerraum dazwischen kann man del *.pdf einfügen um die Files zu löschen.
Das Attribut /V vergleicht, ob die Dateien richtig geschrieben worden sind.
Bitte warten ..
Mitglied: miniversum
05.10.2007 um 11:33 Uhr
Versuchs mal damit:
01.
set "quelle=C:\Hauptverzeichnis"
02.
set "ziel1=C:\ziel1"
03.
set "ziel2=C:\ziel2"
04.
set "filefilter=*.*"
05.
 
06.
FOR /F "delims=" %%d in (dir /B /aD %quelle%) do (
07.
ECHO copy /Y "%quelle%\%%d\%filefilter%" "%ziel1%"  
08.
ECHO copy /Y "%quelle%\%%d\%filefilter%" "%ziel2%"  
09.
ECHO rd /S /Q "%quelle%\%%d"
10.
)
So sollte es gehen. Pfade müssen halt noch angepasst werden.
Es wird erstmal nur angezeigt was gemacht wird. Soll wirklich kopiert und gelöscht werden müssen die grossgeschriebenen ECHOs entfernt werden.

miniversum
Bitte warten ..
Mitglied: Simon-MCP
05.10.2007 um 11:35 Uhr
Vielen Dank für deine Hilfe.

Im Prinzip funktioniert dies. Dafür danke ich Dir auch schon mal.
Nur eins ist etwas umständlich, man muss für jedes Unterverzeinis eine Routine in der Batch-Datei anlegen.
Wenn in Zukunft ein weiteres Unterverzeichnis dazu kommen sollte, muss dieses von Hand wieder in der Batch Datei hinzugefügt werden.

Kann man das evtl. auch automatisieren ?

cu
Crus
Bitte warten ..
Mitglied: Simon-MCP
05.10.2007 um 11:41 Uhr
Hallo,

das sieht schon eher aus nach dem was ich suche. Danke schon mal für deine Mühe.

Ich habe das Script folgendermaßen abgeändert:
set "quelle=C:\Test_Orig"
set "ziel1=C:\Test_Dupli"
set "ziel2=C:\Test_Dupli2"
set "filefilter=*.txt"

FOR /F "delims=" %%d in (dir /B /aD %quelle%) do (
copy /Y "%quelle%\%%d\%filefilter%" "%ziel1%"
copy /Y "%quelle%\%%d\%filefilter%" "%ziel2%"
ECHO rd /S /Q "%quelle%\%%d"
)
Leider bekomme ich aber folgende Meldung:
Die Datei "dir" kann nicht gefunden werden.

muss ich das dir auch noch durch das Hauptverzeichniss ersetzen ?

cu
Crus
Bitte warten ..
Mitglied: bastla
05.10.2007 um 12:00 Uhr
Hallo crus-online#de!

Ersetze die Zeile
01.
FOR /F "delims=" %%d in (dir /B /aD %quelle%) do (
durch
01.
FOR /F "delims=" %%d in ('dir /B /aD "%quelle%"') do (
Grüße
bastla
Bitte warten ..
Mitglied: Simon-MCP
05.10.2007 um 12:09 Uhr
Hallo,

perfekt, vielen lieben Dank. Das funktioniert soweit nun super.

Nur noch ein kleines Problem:
Mit diesem Befehl rd /S /Q "%quelle%\%%d wird nach dem kopieren der einzelnen Dateien das komplette Unterverzeichnis gelöscht.
Ist es auch möglich nur die kopierte Datei (*.txt) zu löschen und das Unterverzeichniss bestehen zu lassen.

cu
Crus
Bitte warten ..
Mitglied: miniversum
05.10.2007 um 12:31 Uhr
Ersetze mal:
rd /S /Q "%quelle%\%%d"
durch
del "%quelle%\%%d\%filefilter%"

miniversum
Bitte warten ..
Mitglied: Biber
06.10.2007 um 23:40 Uhr
Moin crus-online#de,

ich würde die Anforderung direkt vom CMD-Prompt abfackeln ohne so viele Variablen und Heckmeck.

01.
>for /r "C:\PDFRoot\" %i in (*.pdf) do @for %j in ("copy "%i" "Ziel1"" "move %i "ziel2"") do @ECHO %~j
... und dabei
  • statt "C:\PDFRoot\" Deinen Hauptordner oberhalb "ES", "DE". "PT" etc. einsetzen
  • statt "Ziel1" und "Ziel2" deine Zielordner (die vorher schon existieren, denke ich)
  • das letzte "@ECHO" ist nur zum gefahrlosen Testen - zum Ausführen einfach weglassen.

Gruß
Biber
Bitte warten ..
Mitglied: Simon-MCP
07.10.2007 um 16:41 Uhr
Hallo Biber,

danke für deine Mühe.
Trotz allem das es eigentlich schon läuft, habe ich deine Idee auch mal versucht einzusetzen. Doch leider scheint in dem Code etwas nicht zu stimmen.

Wenn ich den Code so ausführe wie er oben steht (ohne das letzte "@ECHO") erhalte ich die folgende Meldung:
Die folgende Verwendung des Pfadoperators zur Ersetzung eines Batchparameters
ist ungültig: %~j

Enterne ich dann das "~" for dem "j" erhalte ich folgende Meldung:
C:\Dokumente und Einstellungen\"User-Profil">for /r "C:\PDFRoot\" j in ("copy "i "zie
l2"") do @ECHO "%i" "Ziel1"" "move %i "ziel2"") do @ECHO %~j
C:\Dokumente und Einstellungen\Crusader>C:\copy.bat
"j" ist syntaktisch an dieser Stelle nicht verarbeitbar.
Ich möchte dich damit aber auch nicht unnötig belästigen, da ich ja bereits ein funktionierendes Script erhalten habe.

Vielen Dank aber noch mal und noch einen schönen Sonntag.

cu
Crus
Bitte warten ..
Mitglied: bastla
07.10.2007 um 17:16 Uhr
Hallo crus-online#de!

Biber's Variante war für die Verwendung an der Kommandozeile, nicht in einer Batchdatei, gedacht - in Batch musst Du jeweils die %-Zeichen verdoppeln, also etwa %%~j schreiben.

Grüße
bastla
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Txt Inhalt in batch variabel verwenden
gelöst Frage von quan81Batch & Shell17 Kommentare

Liebes Forum ich bin neu dabei und freu mich wenn mir jemand helfen kann. Ich versuche per .bat file ...

Batch & Shell

Batch-Befehl zur Sortierung von Dokumenten nach Inhalt

Frage von SasybillaBatch & Shell2 Kommentare

Guten Abend, das ist wahrscheinlich meine erste und auch einzige Frage, die ich in diesem Forum stellen werde! :-) ...

XML

Inhalt einer .xml Datei ändern mit Batch File

Frage von JJSchumacherXML10 Kommentare

Hallo Zusammen, Ich habe eine kleine Datei activeSite.xml mit folgendem Inhalt: Diese würde ich gerne mit einem .bat (Batch) ...

Batch & Shell

Inhalt einer .txt als eine Variable setzen mit Batch

gelöst Frage von AlexIOTBatch & Shell3 Kommentare

Hallo Zusammen, In der Variable.txt steht immer nur ein einziger Rechnername! - wie folgt: EW085IDFV001 Ich möchte das dieser ...

Neue Wissensbeiträge
Humor (lol)
Administrator.de Perlen
Tipp von DerWindowsFreak2 vor 2 TagenHumor (lol)3 Kommentare

Hallo, Heute beim stöbern auf dieser Seite bin auf folgenden Thread aus dem Jahre 2006 gestossen: Was meint ihr? ...

Erkennung und -Abwehr
OpenSSH-Backdoor Malware erkennen
Tipp von Frank vor 3 TagenErkennung und -Abwehr

Sicherheitsforscher von Eset haben 21 Malware-Familien untersucht. Die Malware soll Hintertüren via OpenSSH bereitstellen, so dass Angreifer Fernzugriff auf ...

iOS
WatchChat für Whatsapp
Tipp von Criemo vor 6 TageniOS5 Kommentare

Ziemlich coole App für WhatsApp User in Verbindung mit der Apple Watch. Gibts für iOS sowohl als auch für ...

iOS
IOS hat nen Cursor!
Tipp von Criemo vor 6 TageniOS5 Kommentare

Nette Funktion im iOS. iPhone-Mauszeiger aktivieren „Nichts ist nerviger, als bei einem Tippfehler zu versuchen, den iOS-Cursor an die ...

Heiß diskutierte Inhalte
Grafikkarten & Monitore
PCIe 1.0 Grafikkarte für 3840x2160
Frage von Windows10GegnerGrafikkarten & Monitore29 Kommentare

Hallo, mein Vater hat einen neuen Monitor gekauft, welcher eine native Auflösung von 3840*2160 hat. Diese muss jetzt auch ...

Windows Server
Dienstnamen und oder Deutsche und Englische Beschreibung in services.msc gleichzeitig anzeigen
gelöst Frage von vafk18Windows Server22 Kommentare

Guten Morgen, die Suche nach Diensten in services.msc gestaltet sich immer wieder schwierig, weil mir je nach Aufgabe die ...

Windows 10
Windows Enterprise 1809 Eval nicht bootbar
Frage von Sunny89Windows 1022 Kommentare

Hallo zusammen, bevor ich mich jetzt noch stundenlang rumärger wollte ich euch fragen, ob Ihr die gleichen Probleme habt ...

Linux
Info Monitor für eine Schule
gelöst Frage von CAT404Linux13 Kommentare

Moin, ich möchte einen Infomonitor betreiben; derzeit läuft da ein Windows 10 Rechner bei dem Firefox beim Start in ...