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

Verzeichnisse und Inhalte mit Ausnahmen löschen

Frage Entwicklung Batch & Shell

Mitglied: 37955

37955 (Level 1)

27.06.2008, aktualisiert 14:37 Uhr, 4683 Aufrufe, 4 Kommentare

Hallo Leute,

ich benötige dringend ein Skript, welches mit Dateien und Unterverzeichnisse aus einem bestimmten Verzeichnis entfernt, aber ein Unterverzeichnis bestehen bleibt. Das normale Löschen von Dateien und Verzeichnissen ist ja kein Problem, aber ich habe mit der Ausnahme meine Probleme.

Beispiel:
Alle Dateien und Unterverzeichnisse mit Ausnahme des Unterverzeichnis "TEST2" sollen aus c:\TEST1\ entfernt werden. Der Name der restlichen Dateien und Verzeichnisse und ist jedoch flexibel und kann sich ständig ändern.

Könnt ihr mir helfen?
Mitglied: bytecounter
27.06.2008 um 10:16 Uhr
Hallo,

wäre hilfreich zu wissen, mit welchem System Du arbeitest.

vg
bytecounter
Bitte warten ..
Mitglied: 37955
27.06.2008 um 10:18 Uhr
Sorry, hab ich ganz vergessen!

MS Windows 2000 - 2008
Bitte warten ..
Mitglied: bytecounter
27.06.2008 um 13:47 Uhr
DOS resp. Windows ist leider nicht mein Spezialgebiet, ich wüsste auch keinen Filterbefehl. Daher würde ich den Ansatz folgendermassen machen:

01.
rem erstmal alle Dateien entfernen 
02.
echo J | del *.* 
03.
rem Schleife: Liest den Rest (die bestehenden Verzeichnisse) einzeln ein 
04.
for /R "c:\mein Verzeichnis" %%f in (*.*) do ( 
05.
   rem Handelt es sich um das weiter benötigte Verzeichnis? 
06.
   if not %%f == "TEST2" ( 
07.
       rem nein -> Verzeichnisbaum löschen 
08.
       rm /q %%f 
09.
10.
)
Der Code ist ungeprüft und soll Dir nur einen Ansatz geben! Sicher gibt es eine bessere Lösung, aber wie gesagt, DOS ist nicht mein Spezialgebiet

vg Bytecounter
Bitte warten ..
Mitglied: bastla
27.06.2008 um 14:37 Uhr
Hallo lorenzo!

Sollte so gehen:
01.
@echo off & setlocal 
02.
set "Verz=C:\Test1" 
03.
set "Behalten=Test2" 
04.
for /f "delims=" %%i in ('dir /b /ad "%Verz%"^|findstr /v /x /c:"%Behalten%"') do echo rd /s /q "%Verz%\%%i" 
05.
echo del /q "%Verz%"
Das "echo" in den letzten beiden Zeilen ist für einen ersten Test gedacht - dadurch wird der jeweilige Löschbefehl nur angezeigt, aber noch nicht ausgeführt; wenn Du es entfernst, wird ohne Rückfrage gelöscht.

Das nicht zu löschende Verzeichnis ist bei der Zuweisung an die Variable %Behalten% exakt (mit vollständigem Namen, der Pfad ist ja bereits in %Verz% festgelegt) anzugeben. Falls Groß-/Kleinschreibung nicht unterschieden werden sollen, noch den Schalter "/i" zum "findstr" hinzufügen.

Grüße
bastla
Bitte warten ..
Neuester Wissensbeitrag
CPU, RAM, Mainboards

Angetestet: PC Engines APU 3a2 im Rack-Gehäuse

(2)

Erfahrungsbericht von ashnod zum Thema CPU, RAM, Mainboards ...

Ähnliche Inhalte
Batch & Shell
Bestimmte Verzeichnisse löschen via Powershell (8)

Frage von killtec zum Thema Batch & Shell ...

Exchange Server
gelöst SBS2011 - im Exchange mobile Geräte löschen (4)

Frage von MiSt zum Thema Exchange Server ...

Exchange Server
Inhalt von Postfächern in Exchange löschen (9)

Frage von m.reeger zum Thema Exchange Server ...

Heiß diskutierte Inhalte
Switche und Hubs
Trunk für 2xCisco Switch. Wo liegt der Fehler? (15)

Frage von JayyyH zum Thema Switche und Hubs ...

DSL, VDSL
DSL-Signal bewerten (13)

Frage von SarekHL zum Thema DSL, VDSL ...

Backup
Clients als Server missbrauchen? (10)

Frage von 1410640014 zum Thema Backup ...