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, 5425 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
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 Userverwaltung
Ausgeschiedene Mitarbeiter im Unternehmen - was tun mit den AD Konten? (33)

Frage von patz223 zum Thema Windows Userverwaltung ...

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 ...