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

Verzeichnisse und Inhalte mit Ausnahmen löschen

Frage Entwicklung Batch & Shell

Mitglied: 37955

37955 (Level 1)

27.06.2008, aktualisiert 14:37 Uhr, 4710 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 ..
Ähnliche Inhalte
Windows Server
Verzeichnisse löschen (2)

Frage von MiSt zum Thema Windows Server ...

Webentwicklung
Redirect - Ausnahme definieren in Htaccess (3)

Frage von dodo-r zum Thema Webentwicklung ...

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

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

Neue Wissensbeiträge
Humor (lol)

Taschenrechner in IOS kaputt!

(5)

Information von Lochkartenstanzer zum Thema Humor (lol) ...

Sicherheit

Kanadischer Geheimdienst veröffentlicht erstmals Sicherheitssoftware

(3)

Information von BassFishFox zum Thema Sicherheit ...

Virtualisierung

Docker Monitoring und Steuerung per "sen"

Tipp von Frank zum Thema Virtualisierung ...

Heiß diskutierte Inhalte
Windows 7
Abbruch bei Brennvorgang (19)

Frage von Simulant zum Thema Windows 7 ...

Router & Routing
Externe IP von innen erreichbar machen (16)

Frage von Windows10Gegner zum Thema Router & Routing ...

Firewall
WIndows 7 RDP Massen Angriff (14)

Frage von Motte990 zum Thema Firewall ...