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

Eine Schleife erstellen um ein Verzeichnis zu löschen, wenn eine bestimte Datei in einem anderen Verzeichnis existiert

Frage Entwicklung Batch & Shell

Mitglied: wladislaw

wladislaw (Level 1) - Jetzt verbinden

25.04.2010 um 14:04 Uhr, 4112 Aufrufe, 7 Kommentare

Hallo zusammen,
ich bin Anfänger beim Scriptprogrammieren und komme damit nicht zu Recht eine Prüfung in eine Schleife aufzubauen. Kann mir jemand bitte helfen einen Script zu erstellen. Danke im Voraus.

ich habe mehrere Benutzerverzeichnise, wo noch 2 Unterverzeichnissen existieren ( z.B H:\Userdaten\User_1\Ordner_Neu und H:\Userdaten\User_1\Ordner_alt). Das Verzeichnis H:\Userdaten\User_1\Ordner_alt darf nur dann gelöscht werden wenn eine Datei z.B File1.txt im anderen Verzeichnis H:\Userdaten\User_1\Ordner_neu existiert. Und am Schlüss müsste dieser Löschvorgang bei jedem Benutzerverzeichnisen ( H:\Userdaten\User_1......bis User_n) wiederholt werden.
Mitglied: Biber
25.04.2010 um 14:54 Uhr
Hallo wladislaw,

willkommen im Forum.
Die einfachste Strategie für diese Aufgabe wäre vermutlich,
  • in allen Unterverzeichnissen unterhalb von "H:\Userdaten"
  • die Existenz einer Datei "File1.txt"
  • in einem End-Verzeichnis "Ordner_neu" zu prüfen
  • und dann das Parallelverzeichnis "Ordner_alt" wegzubratzen, falls vorhanden.

Dazu brauchst du allerdings keinen Batch, sondern nur einen Halbzeiler vom CMD-Prompt.
for /r "H:\Userdaten" %i in (file1.txt) do @if exist %i @if exist "%~dpi..\Ordner_alt" rd "%~dpi..\Ordner_alt" /s /q
Grüße
Biber
Bitte warten ..
Mitglied: LotPings
25.04.2010 um 15:46 Uhr
Hallo Biber,

ich mag mich täuschen, aber stellt dein Einzeiler auch sicher das die Datei File1.txt in einem "Order_neu" ist?
Das mag akademisch klingen, aber wenn Ordner_alt auch parallel zu anderen Dateien File1.txt in Ordnern beliebigen Namens existiert,
würden die auch gelöscht.

For /f "delims=" %A in ('dir /B/S H:\Userdaten\File1.txt ^|Findstr /i "Ordner_neu\\File1\.txt$" ') Do @echo RD /S /Q "%~fA\..\..\Ordner_alt" 
ungetestet, wenn die Ausgabe richtig erscheint das echo entfernen.
Diese Zeile könnte zwar einige Stellen auswerfen wo kein Ordner_alt existiert, aber bis auf die Fehlermeldung schadet es ja nicht.

Gruß
LotPings

Edit: fehlendes ' nachgereicht
Bitte warten ..
Mitglied: bastla
25.04.2010 um 16:06 Uhr
@LotPings
Ist sicher sicherer ...

... allerdings fehlte noch eine Kleinigkeit (und im Gegenzug ließe sich der Pfad zum "Ordner_alt" etwas verkürzen):
For /f "delims=" %A in ('dir /B/S H:\Userdaten\File1.txt ^|Findstr /i "Ordner_neu\\File1\.txt$"') Do @echo RD /S /Q "%~dpA..\Ordner_alt" 2>nul
Grüße
bastla
Bitte warten ..
Mitglied: LotPings
25.04.2010 um 16:20 Uhr
@bastla,
ist es nicht schön das wir aufeinander aufpassen
Schönen Sonntag noch...
Bitte warten ..
Mitglied: bastla
25.04.2010 um 16:29 Uhr
@LotPings
ist es nicht schön das wir aufeinander aufpassen
Finde ich auch ...

... und um entsprechenden Gerüchten gleich entschiedenst entgegenzutreten: Die (allermeisten ) Fehler in meinen Batches baue ich nicht ein, um festzustellen, ob Ihr auch genau schaut ...

Auch Dir einen schönen Sonntagsrest
bastla
Bitte warten ..
Mitglied: Biber
25.04.2010 um 18:28 Uhr
Moin Lord und Moin bastla,

natürlich, ich habe das Wichtigste (oder zumindest das Witzigste) vergessen... unterstützte Syntax, auf die man/frau erstmal gar nicht kommt.

for /r "H:\Userdaten" %i in (Ordner_neu\file1.txt) do @if exist %i @if exist "%~dpi..\Ordner_alt" rd "%~dpi..\Ordner_alt" /s /q
--> den Teilpfad in der Klammer hatte ich irgendwie wieder wegeditiert, weil ich das (unwichtigere) "Alt-Verzeichnis erst auf EXIST prüfen, dann löschen" noch reineditiert habe.
Dabei wäre DAS mir bei einem CMD-Schnellschuss vollkommen egal.

Aber ich finde es auch schön, wie wir hier aufeinander aufpassen.

Grüße
Biber
Bitte warten ..
Mitglied: wladislaw
25.04.2010 um 21:22 Uhr
Hallo zusammen,

ich habe diesen CMD-Befehl bei mir getestet und möchte sagen " Vielen DANK !!!!!! " Es funktioniert.
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Alle Dateien in Verzeichnis und Unterverzeichnissen löschen, mit Ausnahme aller.txt-Dateien
gelöst Frage von tegwertBatch & Shell5 Kommentare

Hallo zusammen! Ich habe zum löschen aller Dateien in bestimmten Verzeichnissen und dessen Unterverzeichnissen folgende Batchzeile erstellt: Dabei muss ...

Batch & Shell
Batch-Skript um herauszufinden ob zugehörige Index-Datei im Verzeichnis existiert
Frage von DarkatohmBatch & Shell3 Kommentare

Hallo zusammen, folgendes möchte ich herausfinden: In einem Verzeichnis (C:\Temp\Alle) liegen zu einem Beleg drei verschiedene Dateien: Beleg.pdf Beleg.jpl ...

Batch & Shell
Verlinkung erstellen Batch Datei mit for Schleife
gelöst Frage von rusdavBatch & Shell2 Kommentare

Hallo, ich möchte aus einer CSV Datei Ordner und eine Verlinkung auf den zu erstellenden Ordner erstellen. Dazu habe ...

Batch & Shell
Zwei Verzeichnise Vergleichen und Nicht vorhandene Datei löschen
gelöst Frage von KodaCHBatch & Shell4 Kommentare

Guten Morgen Ich suche eine Möglichkeit um zwei Verzeichnisse ohne deren Unterverzeichnisse zu vergleichen und eine nicht vorhandene Datei ...

Neue Wissensbeiträge
Sicherheit

Meltdown und Spectre: Realitätscheck

Information von Frank vor 37 MinutenSicherheit2 Kommentare

Die unangenehme Realität Der Prozessorfehler mit seinen Varianten Meltdown und Spectre ist seit Juni 2017 bekannt. Trotzdem sind immer ...

Sicherheit

Meltdown und Spectre: Die machen uns alle was vor

Information von Frank vor 1 StundeSicherheit9 Kommentare

Aktuell sieht es in den Medien so aus, als hätten die Hersteller wie Intel, Microsoft und Co den aktuellen ...

Microsoft

Update KB4073578 für AMD CPU (Spectre und Meltdown Lücke)

Information von sabines vor 7 StundenMicrosoft

Wegen Problemen (BOSD, nicht startende PCs) wurde das Update KB4056897 und KB4056894 für AMD CPUs zurückgezogen. Dieses Update KB4073578 ...

Mac OS X

MacOS wo ist die Tilde ?

Tipp von Alchimedes vor 20 StundenMac OS X4 Kommentare

Hallo, ich hab eine MacOS qwertz Keyboard auf US Layout umgestellt da die Sonderzeichen besser erreichbar sind. Leider fehlt ...

Heiß diskutierte Inhalte
Batch & Shell
Anmeldevorgang für Informatikraum (Schule) unter Windows
gelöst Frage von IngenieursBatch & Shell27 Kommentare

Hey zusammen, ich werde in naher Zukunft den Informatik Raum meiner jetzigen Schule von dem aktuellen Betreiber übernehmen (Vertrag ...

Windows 10
Netbook erkennt Soundkarte nicht - keinerlei Info zum Hersteller und Modell vom Netbook und Hardware bekannt
Frage von 92943Windows 1025 Kommentare

Guten Tag, meine Schwester reist in einigen Wochen für ein paar Monate ins Ausland und hat sich dafür ein ...

Batch & Shell
AD-Abfrage in Batchdatei und Ergebnis als Variable verarbeiten
gelöst Frage von Winfried-HHBatch & Shell19 Kommentare

Hallo in die Runde! Ich habe eine Ergänzungsfrage zu einem alten Thread von mir. Ausgangslage ist die Batchdatei, die ...

Netzwerkgrundlagen
Welches Modem für VDSL 50000 der T-Com
Frage von Windows10GegnerNetzwerkgrundlagen18 Kommentare

Hallo, ein Kollege von mir will sich VDSL50000 von der T-Com holen, um daran einen Server zu betreiben. Ich ...