malkeba
Goto Top

Per Batch, Dateien aus einer Excel-Liste auslesen und löschen

Hallo zusammen!

Ich brauche dringend eure Hilfe!

Ich möchte Dateien die in einer Excel-Liste eingetragen sind, mit einer Batch-Datei auslesen und danach löschen.
Es dürfen aber nur die Dateien, die in der Liste erscheinen, gelöscht werden. Existierende Dateien mit gleichem Namen in anderen Ordnern, sowie andere Dateien dürfen auf keinen Fall gelöscht werden.

Die Excel-Liste ist wie folgt aufgebaut:

SpalteA SpalteB

Dateiname1.txt ordner\ordner1
DateinameX.doc ordner\ordner2
Dateiname2.xls ordner\ordner3
Dateiname3.jpg ordner\ordner4
Dateiname4.xx x ordner\ordner4
Dateiname5.xxx ordner\ordner4
Dateiname6.xxx ordner\ordner5
DateinameX2.xxx ordner\ordner6
DateinameX3.xx ordner\ordner7
DateinameX4.xx ordnerx1\ordner8
Dateinamey4.xx ordnery\ordnery

Es sind insgesamt 600 Dateien mit verschiedenen Dateiformaten. Alle Dateien befinden sich aber auf dem gleichen Laufwerk.

Ich bräuchte wirklich sehr dringend eine Lösung und bin für alle Vorschläge und Anregungen dankbar.


Grüße

Malkeba

Content-ID: 92499

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

Ausgedruckt am: 24.11.2024 um 22:11 Uhr

60730
60730 21.07.2008 um 13:06:25 Uhr
Goto Top
Servus,

Ich bräuchte wirklich sehr dringend eine Lösung

vorab die Frage - einmalig oder dauerhaft?

Ansonsten die quick & Dirty Lösung aus dem Ärmel...

Einmalig - Spalte A hinter Spalte B verschieben neue Spalte A erzeugen und del in das Feld schreiben
Mit Autowert sicherstellen, daß "del" überall in der ersten Spalte steht, als csv exportieren.
Mit Notepad , oder ; - je nachdem, was du für ein Trennzeichen gewählt hast gegen \ tauschen -
Dort, wo del \ steht gegen del tauschen und als cmd speichern.-
Dosbox öffnen ins gewünschte Laufwerk wechseln und die cmd laufen lassen.

Gruß
tim1986
tim1986 21.07.2008 um 14:49:20 Uhr
Goto Top
wenn ich das richtig verstehe ist in der exeltabelle in spalte a der dateiname und in spalte b der pfad?!
den willst du als variable auslesen und damit diese datein löschen, richtig?
malkeba
malkeba 21.07.2008 um 14:52:42 Uhr
Goto Top
Hallo Timo,

erstmal danke für die schnelle Antwort.

Ich brauche eigentlich eine dauerhafte Lösung.

Ich habe jetzt die Liste als Textdatei aufbereitet und auf jeder Zeile der komplette Dateipfad eingetragen:
C:\ordner\subordner\datei1 etc.

Ich möchte diese externe Liste mit einer Batch-Datei in einer 'for' Schleife auslesen und die Dateien dann löschen.
Wie kann ich das realisieren??

Vielen Dank im Voraus

Malkeba
malkeba
malkeba 21.07.2008 um 14:59:29 Uhr
Goto Top
Ja, ich habe jetzt aber die Excel-Liste als text Datei aufbereitet.

Für jeder Datei eine Zeile mit dem kompletten Dateipfad: C:\ordner\subordner\datei1 etc
60730
60730 21.07.2008 um 15:52:58 Uhr
Goto Top
Ich brauche eigentlich eine dauerhafte Lösung.

Ok, und Excel als "Datenquelle" ist gesetzter Standard?
Hast du dich mit Excel und Makros schon einmal auseinander gesetzt?
Ich möchte diese externe Liste mit einer Batch-Datei in einer 'for' Schleife auslesen und die Dateien dann löschen.
siehe oben, eine xls kannst du nicht so ohne weiteres auslesen, das kann nur Excel oder eine VBA das Excel aufruft, oder ein Excel Makro.

Oder besser ausgedrückt, mir fehlen weitere Ideen, die vielleicht ein Kollege aus Bremen hat face-wink

Ein simples Type meine.xls bringt ja nichts als "Datenschrott"....
malkeba
malkeba 21.07.2008 um 16:04:23 Uhr
Goto Top
Ich habe jetzt die Liste als Textdatei aufbereitet und auf jeder Zeile der komplette Dateipfad eingetragen:
C:\ordner\subordner\datei1 etc.
Eine .TXT Datei lässt sich besser als Variable auslesen oder ??
tim1986
tim1986 21.07.2008 um 16:05:16 Uhr
Goto Top
for /f "tokens=1" %%i in (c:\dellist.txt) do call :loop1 %%i  

:loop1
del %1

goto :eof

hab die pfad u. dateinamen "c:\test1.txt" in die dellist.txt geschrieben und diese direckt auf c:\ gelegt! anpassen solltest du hinbekommen denke ich ^^

hoffe das hilft dir weiter

mfg der tim
malkeba
malkeba 21.07.2008 um 16:37:25 Uhr
Goto Top
Hi tim,

es klappt!


Vielen Dank für die schnelle Hilfe.


Gruß

Malkeba