Batchdatei?
hallo.
ICh bin AZUBI habe also noch nicht viel ahnung.
bei uns werden Dateien mit dem gleichen Namen in ein Verzeichniss geschrieben.
Sie unterscheiden sich nur an der Größe. Sie sind entweder 97Bytes oder 113Bytes groß.
ICh soll eine Batch oder was anderes schreiben, welches die 97er selektiert und löscht.
Kann mir bitte jemand helfen????
MFG
Stefan
ICh bin AZUBI habe also noch nicht viel ahnung.
bei uns werden Dateien mit dem gleichen Namen in ein Verzeichniss geschrieben.
Sie unterscheiden sich nur an der Größe. Sie sind entweder 97Bytes oder 113Bytes groß.
ICh soll eine Batch oder was anderes schreiben, welches die 97er selektiert und löscht.
Kann mir bitte jemand helfen????
MFG
Stefan
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 15137
Url: https://administrator.de/contentid/15137
Ausgedruckt am: 20.11.2024 um 12:11 Uhr
5 Kommentare
Neuester Kommentar
In ein und demselben Ordner kann eine Datei eines Namens auch nur einmal existieren. Würde man versuchen, in Ordner xyz zur Datei abc mit 97 Byte noch eine weitere Datei abc mit 113 Bytes zu schreiben, würde damit die Datei mit 97 Bytes einfach überschrieben. Wie sieht es denn mit der Dateiendung aus? abc.txt und abc.log sind nicht das Selbe. Im Windows-Explorer muss dazu die Anzeige bekannter Dateiendungen eingeschaltet sein. Im DOS-Fenster siehst Du´s auch so.
Edit: Da war ich mit dem Abschicken wohl zu langsam
Edit: Da war ich mit dem Abschicken wohl zu langsam
Moin, steve85,
Du kannst Dich vielleicht über folgende Schritte/Vorüberlegungen herantasten:
- Du brauchst die Dateigröße der Dateien in einem Verzeichnis.
Für so etwas (Datei/Verzeichnisinformationen) ist meist der "DIR"-Befehl zuständig.
- Du brauchst eigentlich nur die Dateigröße mit dem Wert 97 vergleichen; nur diese Dateien sollen gelöscht werden.
mit diesem Befehl vom CMD-Prompt aus bist Du schon relativ nah dran:
for /f %i in ('dir /A-D/b *.*') do @echo %~zi %~fi
(einfach mal kopieren und probieren)
Der erzeugt eine Liste nur mit Dateinamen und Dateigrößen auf dem Bildschirm, z.B.:
146501 E:\solaris80.20.pdf
372 E:\testxx.bat
372 E:\1234.pdf
Ein Schritt weiter ... nur die Dateien mit bestimmter Größe anzeigen:
for /f %i in ('dir /A-D/b *.*') do @if %~zi==372 echo %~zi %~fi
zeigt nur DIE an:
372 E:\testxx.bat
372 E:\1234.pdf
Nächster Schritt:
del testxx.bat
del 1234.pdf
Vorletzter Schritt: Diese Zeile in eine Delete97er.bat schreiben. Im Batch muss bei Variablen ein Prozentzeichen mehr davor stehen als vom Prompt aus:
in Datei delete97er.bat
for /f %%i in ('dir /A-D/b *.*') do @if %%~zi==97 echo del %%i
REM wenn das klappt, dann ohne das ECHO... nächste Zeile das REM löschen
REM for /f %%i in ('dir /A-D/b *.*') do @if %%~zi==97 del %%i
ende delete97er.bat
Schau mal hier unter Batch & Shell, da gibt es auch Batch-Tutorials.
Frank / der Biber aus Bremen
[Edit]
hatte Deinen letzten Beitrag natürlich nicht gelesen... wenn Deine Dateien mit "Steuer" anfangen, dann oben
for /f %%i in ('dir /A-D/b Steuer*.*') do @if %%~zi==97 echo del %%i
[/Edit]
Du kannst Dich vielleicht über folgende Schritte/Vorüberlegungen herantasten:
- Du brauchst die Dateigröße der Dateien in einem Verzeichnis.
Für so etwas (Datei/Verzeichnisinformationen) ist meist der "DIR"-Befehl zuständig.
- Du brauchst eigentlich nur die Dateigröße mit dem Wert 97 vergleichen; nur diese Dateien sollen gelöscht werden.
mit diesem Befehl vom CMD-Prompt aus bist Du schon relativ nah dran:
for /f %i in ('dir /A-D/b *.*') do @echo %~zi %~fi
(einfach mal kopieren und probieren)
Der erzeugt eine Liste nur mit Dateinamen und Dateigrößen auf dem Bildschirm, z.B.:
146501 E:\solaris80.20.pdf
372 E:\testxx.bat
372 E:\1234.pdf
Ein Schritt weiter ... nur die Dateien mit bestimmter Größe anzeigen:
for /f %i in ('dir /A-D/b *.*') do @if %~zi==372 echo %~zi %~fi
zeigt nur DIE an:
372 E:\testxx.bat
372 E:\1234.pdf
Nächster Schritt:
for /f %i in ('dir /A-D/b *.*') do @if %~zi==372 echo del %i
(also statt des eigentlichen DEL- (delete)befehls erstmal nur Anzeigen, was der Batch machen würde) Output wäre:del testxx.bat
del 1234.pdf
Vorletzter Schritt: Diese Zeile in eine Delete97er.bat schreiben. Im Batch muss bei Variablen ein Prozentzeichen mehr davor stehen als vom Prompt aus:
in Datei delete97er.bat
for /f %%i in ('dir /A-D/b *.*') do @if %%~zi==97 echo del %%i
REM wenn das klappt, dann ohne das ECHO... nächste Zeile das REM löschen
REM for /f %%i in ('dir /A-D/b *.*') do @if %%~zi==97 del %%i
ende delete97er.bat
Schau mal hier unter Batch & Shell, da gibt es auch Batch-Tutorials.
Frank / der Biber aus Bremen
[Edit]
hatte Deinen letzten Beitrag natürlich nicht gelesen... wenn Deine Dateien mit "Steuer" anfangen, dann oben
for /f %%i in ('dir /A-D/b Steuer*.*') do @if %%~zi==97 echo del %%i
[/Edit]