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

Ordnerinhalt komplett löschen, bis auf einen Unterordner

Frage Entwicklung Batch & Shell

Mitglied: gurkensalat89

gurkensalat89 (Level 1) - Jetzt verbinden

12.05.2010 um 13:24 Uhr, 4447 Aufrufe, 6 Kommentare

Hallo,

ich habe einen Ordner, mit Unterordnern und Dateien. Ich möchte den kompletten Inhalt löschen, bis auf einen bestimmten Unterordner, der noch bestehen bleiben soll.
Das Löschen mache ich mit "rmdir /s /q c:\ordner".
Allerdings lösch ich damit ja nun alles. Ich möchte aber, dass "C:\ordner\speziellerOrdner" noch bestehen bleibt.
Gibt es dafür eine Lösung?
Mitglied: LotPings
12.05.2010 um 14:05 Uhr
Mach den Ordner den du behalten willst, zum aktuellen Ordner, der wird nicht gelöscht.

Gruß
LotPings
Bitte warten ..
Mitglied: PaT.sls
12.05.2010 um 14:39 Uhr
hi,

es ist vlt nicht die sauberste Lösung aber die einfachste die mir einfällt^^
So umgehst du Quasi das Problem

01.
md "c:\TEMP" 
02.
move "C:\ordner\speziellerOrdner" "c:\TEMP" 
03.
rmdir /s /q c:\ordner 
04.
md "C:\ordner" 
05.
move "c:\TEMP\speziellerOrdner" "C:\ordner" 
06.
rmdir /s /q c:\TEMP
Bei der geschichte würde ich aber noch Sicherheitsabfragen machen, damit der nur Löscht wenn das Backup existiert, und den TEMP löscht wenn die sachen auch wirklich wieder im Ordner sind...nicht das weil er aus irgend nem grund nen fehler hat und die daten weg sind

Grüße Pascal

EDIT: Hier mit Sicherheitsabfragen:

01.
echo Dummyfile > C:\ordner\speziellerOrdner\dummy.txt 
02.
md "c:\TEMP" 
03.
move "C:\ordner\speziellerOrdner" "c:\TEMP" 
04.
if not exist C:\TEMP\dummy.txt goto PAUSE 
05.
rmdir /s /q c:\ordner 
06.
md "C:\ordner" 
07.
move "c:\TEMP\speziellerOrdner" "C:\ordner" 
08.
if not exist C:\ordner\speziellerOrdner\dummy.txt goto PAUSE 
09.
rmdir /s /q c:\TEMP 
10.
del C:\ordner\speziellerOrdner\dummy.txt  
11.
exit 
12.
:PAUSE 
13.
echo. 
14.
echo Fehler beim Sichern der Daten, breche Vorgang aus Sicherheitsgründen ab! 
15.
pause 
16.
exit
Bitte warten ..
Mitglied: Biber
12.05.2010 um 18:11 Uhr
Moin gurkensalat89,

ich würde für den Fall, dass es sich um einen Ordner handelt, der wie oben beschrieben direkt auf der ersten Unterebene liegt, mit einer FOR/D Anweisung arbeiten.

Wollte ich z.B. in meinem Ordner "d:\temp" alle Unterordner "backup*" löschen außer "..\Backup3" ......dann
01.
(=18:09:19  D:\temp=) 
02.
------- ohne Ausnahme --- 
03.
>for /d %i in (d:\temp\backup*) do @echo rd /s /q "%i" 
04.
rd /s /q "d:\temp\Backup1" 
05.
rd /s /q "d:\temp\backup2" 
06.
rd /s /q "d:\temp\backup3" 
07.
 
08.
---- mit Ausnahme --- 
09.
(=18:09:30  D:\temp=) 
10.
>for /d %i in (d:\temp\backup*) do @if /i "%i" neq "d:\temp\backup3" @echo rd /s /q "%i" 
11.
rd /s /q "d:\temp\Backup1" 
12.
rd /s /q "d:\temp\backup2" 
13.
 
Grüße
Biber
Bitte warten ..
Mitglied: 60730
12.05.2010 um 18:25 Uhr
Servus,

fangen wir mal leicht an:

for /f %a in ('dir /b /S /AD') do echo %a

so bekommst du (in der Dosbox) alle Unterordner serviert.

angenommen du hast in dem Ordner einen Unterordner WINDOWS

for /f %a in ('dir /b /S /AD') do if not "%a"=="WINDOWS" echo %a
Dann siehts du fast die gleiche Liste wie oben, außer dem WINDOWS Ordner

Nach Bibers berechtigtem Einwand - könnte es auch sein, dass der Ordner auch "wINdOws" heissen könnte, das federt man mit einem /i ab

for /f %a in ('dir /b /S /AD') do if /i not "%a"=="WINDOWS" echo %a

Jetzt willst du aber nix angezeigt bekommen, sondern einen Befehl ausführen.
Da nehmen wir doch den alten aber guten BiberBastla Trick
for /f %a in ('dir /b /S /AD') do if /i not "%a"=="WINDOWS" echo "rmdir %a" >>logfile.txt

Das logfile schaust du dir an, obs klappt und alle weiteren Schritte sollten klar sein.

Gruß

edit Biber du rechtsüberholer *duck*
mich würde ja echt mal interessieren, wie dein Essen schmeckt, wenn du selber schreibst, dass du besser kochen kannst

edit ² ich kaufe dem dir Befehl je noch ein /S

¶“¡¢[]|{}≠¡¡¿
Bitte warten ..
Mitglied: Biber
12.05.2010 um 18:50 Uhr
Moin T-Mo,

Zitat von 60730:
edit ² ich kaufe dem dir Befehl je noch ein /S
Wenn du hier ohnehin vorauseilend dein Weihnachtsgeld für Buchstabenkäufe auf den Kopp haust, dann wäg doch mal ab, ob du dir nicht noch ein "i" leisten kannst für den IF-Vergleichsoperator "i" (für "is' mir egal ob gross oder kleingeschrieben").

Sonst wird eventuell zwar ein Unterverzeichnis namens "WINDOWS" verschont, aber nahe Verwandte wie "Windows" nicht...

Grüße
Biber
Bitte warten ..
Mitglied: 60730
12.05.2010 um 20:45 Uhr
Zitat von Biber:
Wenn du hier ohnehin vorauseilend dein Weihnachtsgeld für Buchstabenkäufe auf den Kopp haust, dann wäg doch mal ab,
ob du dir nicht noch ein "i" leisten kannst für den IF-Vergleichsoperator "i" (für "is'
mir egal ob gross oder kleingeschrieben").

Sonst wird eventuell zwar ein Unterverzeichnis namens "WINDOWS" verschont, aber nahe Verwandte wie "Windows"
nicht...

@Biber:

Eigentlich wollte ich Sie verschonen, die nahen Verwandten wie die lieben Tanten
Denn mein Weihnachtsgeld reicht nur für Konsonanten
Für Vokale muß ich doch aus der Urlaubskasse zahle

Wo die Kohle eh wech ist was ein Mist
Tu ich dem ganzen auch noch spend´ ein weiteres Ambersand
Weil die Batch den Zeichensalat sonst nicht erkennt.
Aber das hab ich nicht verpennt, dachte das der Gurkensalat das kennt
Dafür schenk ich mir das RMdir
Und nehm das RD dafür

01.
for /f %%a in ('dir /b /S /AD') do if /i not "%%a"=="WINDOWS" echo "rd %%a" >>logfile.txt
Grüße
Biber
retour
wer ein gutes Auge hat, darf mich gerne rechts überholen
Bitte warten ..
Neuester Wissensbeitrag
Microsoft

Lizenzwiederverkauf und seine Tücken

(5)

Erfahrungsbericht von DerWoWusste zum Thema Microsoft ...

Ähnliche Inhalte
Heiß diskutierte Inhalte
Windows Netzwerk
Windows 10 RDP geht nicht (16)

Frage von Fiasko zum Thema Windows Netzwerk ...

Windows Server
Outlook Verbindungsversuch mit Exchange (15)

Frage von xbast1x zum Thema Windows Server ...

Microsoft Office
Keine Updates für Office 2016 (13)

Frage von Motte990 zum Thema Microsoft Office ...