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

Batch Datei löschen nur auf Dateiendungen beziehen

Frage Entwicklung

Mitglied: jan4321

jan4321 (Level 1) - Jetzt verbinden

06.07.2013, aktualisiert 00:57 Uhr, 2294 Aufrufe, 9 Kommentare

Hi,
ich hab hier gerade eine Software, die gesplittete Zip files mit daten erzeugt.

die müssen entpackt werden und danach lösche ich die Zip.

Die haben allerdings das formart .z001 - .zXXX

Meine for schleife sieht mom so aus:

01.
 FOR /F "delims=*" %%B IN ('dir /b /s /a-d *.z*') do del /F "%%B"
Das funktionirt auch gut, nur leider gibt es manchmal *.z* auch im datei namen, welche ich entpackt habe, was dann natürlich die Datei mit löscht.

Kann ich nur nach Dateiendungen Filtern, oder hat jemand einen anderen Lösungsansatz?
Mitglied: Endoro
06.07.2013, aktualisiert um 05:34 Uhr
Hallo,

du könntest prüfen, ob der erste Buchstabe der Extension ein "z" ist:
01.
set "extension=%%~xB" 
02.
if /i "!extension:~2!"=="z" del "%%~B"
Dazu muss in der for Schleife delayed expansion eingeschaltet werden.

lg
Bitte warten ..
Mitglied: bastla
06.07.2013 um 10:17 Uhr
... oder sicherer, indem Du die gesamte Extension prüfst:
FOR /F "delims=*" %%B IN ('dir /b /s /a-d *.z*^|findstr /ie "\.z[0-9][0-9]{0-9]"') do del /F "%%B"
Grüße
bastla
Bitte warten ..
Mitglied: 76109
06.07.2013 um 10:32 Uhr
Hallo Endoro!

Müsste es bei Extension z.B. ".z001" nicht so heißen?
01.
if /i "!extension:~1,1!"=="z" del "%%~B"
Gruß Dieter
Bitte warten ..
Mitglied: bastla
06.07.2013 um 10:44 Uhr
@ Dieter

Richtig - aber damit würden zB entpackte ".zkf"- oder ".zpd"-Dateien immer noch auf der Strecke bleiben ...

Grüße
bastla
Bitte warten ..
Mitglied: 76109
06.07.2013 um 11:01 Uhr
Hallo bastla!

Mir ging's nur um eine Richtigstellung...

Das Deine Lösung die sichere wäre, steht dabei ganz außer Frage


Gruß Dieter
Bitte warten ..
Mitglied: Endoro
06.07.2013 um 14:14 Uhr
Ja, stimmt, die erste:
01.
set "extension=%%~xB" 
02.
if /i "!extension:~1!"=="z" del "%%~B"
oder auch so:
01.
FOR /F "delims=" %%B IN ('dir /b /s /a-d *.z*^|findstr /i "\.z[0-9][0-9]*$"') do del "%%~B"

lg
Bitte warten ..
Mitglied: bastla
06.07.2013 um 14:19 Uhr
@ Endoro
Mit
!extension:~1!
erhältst Du doch die gesamte Extension (nur ohne den Punkt davor) ...

Grüße
bastla
Bitte warten ..
Mitglied: jan4321
06.07.2013 um 17:48 Uhr
Super danke funktioniert
Bitte warten ..
Mitglied: Endoro
06.07.2013 um 18:24 Uhr
Zitat von bastla:
@ Endoro
Mit
!extension:~1! 
> 
erhältst Du doch die gesamte Extension (nur ohne den Punkt davor) ...

Hab ich das verschlimmbessert

Es geht auch nicht wirklich gut so,
lieber bei Regex bleiben

lg
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
gelöst Doppelte Dateneinträge per Batch aus Datei löschen? HILFE (7)

Frage von freshman2017 zum Thema Batch & Shell ...

Batch & Shell
gelöst Dateinamen mit Batch-Datei ändern - Problem (9)

Frage von fffffuuuuuuuhhhh zum Thema Batch & Shell ...

Batch & Shell
gelöst Teile eines Dateinamens ändern mit Batch Datei (4)

Frage von fffffuuuuuuuhhhh zum Thema Batch & Shell ...

Batch & Shell
gelöst Bestimmte Daten aus CSV per Windows BATCH Datei in .txt Format schreiben lassen. (9)

Frage von freshman2017 zum Thema Batch & Shell ...

Neue Wissensbeiträge
Google Android

Cyanogenmod alternative Downloadquelle

(5)

Tipp von Lochkartenstanzer zum Thema Google Android ...

Batch & Shell

Batch als Dienst bei Systemstart ohne Anmeldung ausführen

(5)

Tipp von tralveller zum Thema Batch & Shell ...

Sicherheits-Tools

Sicherheitstest von Passwörtern für ganze DB-Tabellen

(1)

Tipp von gdconsult zum Thema Sicherheits-Tools ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
gelöst Statische Routen mit Shorewall, ISC-DHCP Server konfigurieren für Android Devices (24)

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

Server
gelöst Wie erkennen, dass nur deutsche IPs Zugang zu einer Website haben? (22)

Frage von Coreknabe zum Thema Server ...

Hardware
16-20 Port POE Switch mit VLAN (19)

Frage von thomasreischer zum Thema Hardware ...

Windows Server
Exchange HyperV Prozessorlast (18)

Frage von theoberlin zum Thema Windows Server ...