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
GELÖST

Batch - Ordner löschen - mit Platzhalter

Frage Entwicklung Batch & Shell

Mitglied: ebimail

ebimail (Level 1) - Jetzt verbinden

23.12.2007, aktualisiert 18.10.2012, 16487 Aufrufe, 9 Kommentare

Hey,

da hätte ich noch eine Frage,

könnte man folgenden Code nicht einfacher gestalten? Wieso kann man keine Ordner löschen indem man sie auch mit Platzhaltern identifiziert?

Hier ist mein alternativ Code:
01.
@echo off 
02.
Setlocal EnableDelayedExpansion 
03.
 
04.
FOR /F %%i in ('dir /b "alte_Sicherung*"') do ( 
05.
set Name=%%i && del !Name! /F /S /Q && RMDIR !Name!/S /Q 
06.
)
Liebe Grüße
Mitglied: TuXHunt3R
23.12.2007 um 22:07 Uhr
Solche Sachen habe ich auch schon probiert, bei mir hat es auch nie geklappt. Musste das Ganze auch immer mit einem dir und einer FOR-Schleife lösen. Schick doch mal eine PN an Biber oder bastla [edit] mit einem Link zu diesem Beitrag drin [/edit], eventuell wissen unsere allseits geliebten Batch-Götter mehr.
Bitte warten ..
Mitglied: Dani
23.12.2007 um 22:07 Uhr
Abend ebimail,
wenn du nur Verzeichnisse löschen möchtest, kannst du doch den del - Befehl vergessen.

So sollte es auch gehen:
01.
@echo off 
02.
for /f %%i in ('dir /b "alte_Sicherung*"') do rmdir /s /q "%%i"
Grüße
Dani
Bitte warten ..
Mitglied: ebimail
23.12.2007 um 22:10 Uhr
Ich möchte aber neben den Verzeichnissen auch die Dateien löschen, deswegen beide Befehle.

Liebe Grüße


Würde mich freuen wenn jemand noch eine Idee hat.
Bitte warten ..
Mitglied: future.former
23.12.2007 um 22:24 Uhr
ich kann zwar an dieser stelle nicht weiterhelfen, aber wo finde ich eine komplette dokumentation über die batch-sprache ?
Bitte warten ..
Mitglied: bastla
24.12.2007 um 07:55 Uhr
Hallo ebimail!

Mit der von Dani vorgeschlagenen Zeile werden natürlich auch die in den zu löschenden Verzeichnissen enthaltenen Dateien gelöscht - bitte einmal testen.

Der Ordnung halber vielleicht noch der Hinweis, dass mit dem zusätzlichen "dir"-Schalter "/ad" die Schleife nur Verzeichnisse behandelt, was Du einfacher auch mit "for /d" haben kannst:
01.
for /d %%i in ("alte_Sicherung*.*") do rd /s /q "%%i"
Grüße
bastla
Bitte warten ..
Mitglied: bastla
24.12.2007, aktualisiert 18.10.2012
Hallo future.former!

Als Ansatzpunkt kannst Du in der Windows-Hilfe nach dem Stichwort "cmd" suchen (vor allem auch die "Ergebnisse der Volltextsuche" beachten).

Hier im Forum findest Du neben einigen Links unter Batch & Shell zB diesen Kommentar (mit Zusatznutzen in Form eines Batches zum Aufruf der Windows-Hilfe von der Kommandozeile) von Biber, dessen einschlägige Tutorials ich ebenfalls ausdrücklich empfehlen möchte.

Grüße
bastla
Bitte warten ..
Mitglied: ebimail
24.12.2007 um 13:59 Uhr
01.
for /d %%i in ("alte Sicherung*.*") do rd /s /q "%%i" 

Wohw! Vielen Dank!

1) warum geht das nur mit *.* und warum reicht nicht *

2) warum ist hier kein "delims=" nötig?

3) Vll. könnt ihr mir ja noch erklären warum ich bei meinem Code immer das Problem hatte, das am Ende des "gefundenen Verzeichnisses" immer noch ein Leerzeichen dran war, welches ich erst wegmachen musste um den del. befehl nutzen zu können?

01.
FOR /F "delims=" %%i in ('dir /b "alte Sicherung*"') do ( 
02.
set Name=%%i && del "!Name:~0,27!" /F /S /Q && RMDIR "!Name:~0,27!" /S /Q 
03.
)
Liebe Grüße
Bitte warten ..
Mitglied: bastla
24.12.2007 um 14:11 Uhr
Hallo ebimail!

1) Sollte auch mit * funktionieren, aber wenn nichts gegen *.* spricht, tendiere ich zu dieser Schreibweise.

2) Hier wird kein "for /f" verwendet.

3) Versuch es mit zusätzlichen Anführungszeichen - etwa so:
01.
FOR /F "delims=" %%i in ('dir /b "alte Sicherung*"') do ( 
02.
set "Name=%%i" && del "!Name:~0,27!" /F /S /Q && RMDIR "!Name:~0,27!" /S /Q 
03.
)
Diese (undokumentierte) Schreibweise
01.
set "Variable=Wert"
habe ich (natürlich) erstmals bei Biber gesehen und verwende sie fast ausnahmslos. Ihr Vorteil ist, dass Werte mit enthaltenen (inklusive am Ende befindlichen) Leerstellen "zusammengehalten" werden, ohne die Anführungszeichen ebenfalls in die Variable übernehmen zu müssen, was gelegentlich (zB für eine "token"-Zerlegung) durchaus nützlich sein kann. Negative Nebenwirkungen sind mir bisher nicht aufgefallen.

Grüße
bastla
Bitte warten ..
Mitglied: ebimail
26.12.2007 um 16:07 Uhr
Ich danke vielmals!

Liebe Grüße!
Bitte warten ..
Neuester Wissensbeitrag
Festplatten, SSD, Raid

12TB written pro SSD in 2 Jahren mit RAID5 auf Hyper-VServer

Erfahrungsbericht von Lochkartenstanzer zum Thema Festplatten, SSD, Raid ...

Ähnliche Inhalte
Batch & Shell
gelöst Powershell - Ordner löschen mit Ausnahme (10)

Frage von Bugger zum Thema Batch & Shell ...

Windows 7
gelöst Alten Windows Ordner löschen (5)

Frage von Power-Poler zum Thema Windows 7 ...

Batch & Shell
gelöst Batch Ordner erstellen und verschieben (6)

Frage von Fromeonly zum Thema Batch & Shell ...

Batch & Shell
gelöst Dateien (keine Ordner) löschen die älter sind als (4)

Frage von siziigilendirmez zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Windows Userverwaltung
Ausgeschiedene Mitarbeiter im Unternehmen - was tun mit den AD Konten? (34)

Frage von patz223 zum Thema Windows Userverwaltung ...

LAN, WAN, Wireless
gelöst Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (28)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (21)

Frage von DavidGl zum Thema LAN, WAN, Wireless ...

Viren und Trojaner
Aufgepasst: Neue Ransomware Goldeneye verbreitet sich rasant (20)

Link von Penny.Cilin zum Thema Viren und Trojaner ...