steve85
Goto Top

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

Content-ID: 15137

Url: https://administrator.de/contentid/15137

Ausgedruckt am: 20.11.2024 um 12:11 Uhr

Metzger-MCP
Metzger-MCP 30.08.2005 um 10:09:52 Uhr
Goto Top
Man kann unter Windows innerhalb des gleichen Verzeichnisses kein Dateinamen doppelt vergeben. Auch andere BS sind mir nicht bekannt unter denen das geht. Sonst wäre die Funktion Datei überschreiben nicht so nervig.

Mfg Metzger
ybBln
ybBln 30.08.2005 um 10:26:57 Uhr
Goto Top
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
Metzger-MCP
Metzger-MCP 30.08.2005 um 10:36:03 Uhr
Goto Top
Kenn ich face-smile passiert mir auch ständig ! face-smile

P.s -> schön das du Ihm erklärt hast wie man ersehen kann face-smile, welche Existention die Datei hat, das vergass ich face-sad

Mfg Metzger
Steve85
Steve85 30.08.2005 um 10:51:10 Uhr
Goto Top
Die Dateien sind nicht gleich. Sie beginnen mit STEUER und dann kommt eine lange nummer, diese ist wiederrum unterschiedlich. Die Dateien haben keine endung.
Sorry, dass ich mich falsch ausgedrückt habe.
Biber
Biber 30.08.2005 um 11:01:44 Uhr
Goto Top
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:
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]