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 bestimmte Dateien löschen

Frage Entwicklung

Mitglied: rubono

rubono (Level 1) - Jetzt verbinden

31.07.2012 um 11:40 Uhr, 5473 Aufrufe, 8 Kommentare

Hallo,

ich habe ein Frage zu Batch

ich muss mehrere Ordner auf die Unterordner mit Namen "Bios" untersuchen und in diesen "Biosordnern" die 2 neuesten Versionen der darin enthaltenen Dateien beibehalten, die restlichen sollen gelöscht werden. Ich habe es bis jetzt geschafft die Pfade der Ordner aufzulisten und in eine Textdatei zu speichern mit: "dir /a:d /b /s Y:\Ordnername\*bios >datei.txt".
Nun würde ich gerne diese Textdatei zeilenweise auslesen und oben genannte Aufgabe ausführen.
Ich hoffe es kann mir jemand helfen.

Gruß rubono
Mitglied: bastla
31.07.2012 um 12:25 Uhr
Hallo rubono und willkommen im Forum!

Dazu brauchst Du doch keine Datei zu verwenden - ungetestet etwa so:
01.
for /f "delims=" %%i in ('dir /s/b/ad "Y:\Ordnername\*bios"') do ( 
02.
    for /f "skip=2 delims=" %%a in ('dir /b/o-d "%%i"') do echo del "%%i\%%a" 
03.
)
Solange das "echo" vor dem "del" steht, passiert noch nix - die Löschbefehle werden nur angezeigt; wenn's gut aussieht, einfach das "echo" entfernen ...

Grüße
bastla
Bitte warten ..
Mitglied: Karo
31.07.2012 um 12:26 Uhr
Moin,

01.
for /F "eol=; tokens=* DELIMS=" %%i in (Datei.txt) do dir %%i /b /O-D>datei2.txt && for /F "eol=; tokens=* DELIMS= SKIP=2" %%i in (Datei2.txt) do @ECHO %%i
Das echo am Ende muss natürlich durch Dein Delete mit Pfad ersetzt werden, aber zum testen lieber trockenschwimmen ...

bye
Karo
Bitte warten ..
Mitglied: Karo
31.07.2012, aktualisiert um 12:28 Uhr
@bastla
*LOL* lasse dem Meister natürlich den Vortritt

Gruß

Karo
Bitte warten ..
Mitglied: bastla
31.07.2012 um 12:37 Uhr
@Karo
Danke - ist aber beides (der Vortritt und die Titulierung) nicht nötig ...

Grüße
bastla

P.S.: Ich war vermutlich auch nicht schneller, sondern habe nur früher angefangen ...
Bitte warten ..
Mitglied: rubono
31.07.2012 um 14:25 Uhr
wow danke für die superschnelle antwort
ihr habt mir sehr geholfen dankeschön !

gruß

rubono
Bitte warten ..
Mitglied: rubono
02.08.2012 um 14:07 Uhr
eine Frage hätte ich noch
könntet ihr mir die einzelnen zeilen erklären ?
Verstehe quasi nichts davon ausser das es zwei for schleifen sind

Gruß

rubono
Bitte warten ..
Mitglied: bastla
02.08.2012, aktualisiert 03.08.2012
Hallo rubono!

Dann wollen wir mal:
for /f "delims=" %%i in ('dir /s/b/ad "Y:\Ordnername\*bios"') do (
liefert in %%i alle Ordner (wegen "/ad") unterhalb von "Y:\Ordnername", die dem Muster "*bios" entsprechen - und zwar inkl Pfadangabe (wegen "s") - das wusstest Du aber schon .
for /f "skip=2 delims=" %%a in ('dir /b/o-d "%%i"') do echo del "%%i\%%a"
listest dann in weiterer Folge für jeden dieser Unterordner die enthaltenen Dateien (zur Sicherheit wäre noch ein "/a-d" zu empfehlen) absteigend nach Änderungsdatum sortiert ("/o-d") auf und löscht sie (da nur Dateinamen geliefert werden, ist die Angabe des Ordnerpfades - steht in "%%i" - erforderlich), wobei wegen des "skip=2" die ersten beiden Dateien (und somit die beiden jüngsten) übersprungen werden.

Grüße
bastla
Bitte warten ..
Mitglied: rubono
03.08.2012 um 08:40 Uhr
Hallo bastla

vielen Dank jetzt ist alles klar

Grüße rubono
Bitte warten ..
Neuester Wissensbeitrag
Ähnliche Inhalte
Batch & Shell
gelöst Batch : alle Dateien eines Ordners bearbeiten (1)

Frage von deguonkel zum Thema Batch & Shell ...

Entwicklung
Versteckte .(Punkt)Dateien löschen (3)

Frage von DarkJM zum Thema Entwicklung ...

Batch & Shell
gelöst Powershell ältere Dateien löschen (6)

Frage von Cougar77 zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Windows Installation
Eine etwas (wirklich) speziellere Frage: Windows 10-Installation über (11)

Frage von DerFurrer zum Thema Windows Installation ...

Linux
gelöst Boot failed: not a bootable disk (10)

Frage von Fleckmen zum Thema Linux ...

Windows Server
Probleme mit Client Software Zugriff auf Windows Server 2012 (8)

Frage von it-kolli zum Thema Windows Server ...

Multimedia & Zubehör
gelöst Iphone 6 prob (8)

Frage von jensgebken zum Thema Multimedia & Zubehör ...