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, 4688 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
Exchange Server

WSUS bietet CU22 für Exchange 2007 SP3 nicht an. EOL Exchange 2007

Tipp von DerWoWusste zum Thema Exchange Server ...

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

Frage von killtec zum Thema Batch & Shell ...

Windows Server
HDD löschen aber Freigaben behalten? (9)

Frage von maddoc zum Thema Windows Server ...

Outlook & Mail
gelöst Bestimmte Anhänge bei E-mails mit Exchange 2010 löschen (5)

Frage von jojo0411 zum Thema Outlook & Mail ...

Heiß diskutierte Inhalte
Exchange Server
Test-ActiveSyncConnectivity Error nach neuem Zertifikat (17)

Frage von Driphex zum Thema Exchange Server ...

Batch & Shell
gelöst Batch xls nach aktuellem Datum auslesen und email senden (14)

Frage von michi-ffm zum Thema Batch & Shell ...

Backup
Datensicherung ARCHIV (12)

Frage von fautec56 zum Thema Backup ...