hallöchen.
hab da folgenden sachverhalt.möchte eine ausgelesene (aus Excel) txt-datei mit folgendem inhalt (der inhalt der txt spielt keine große rolle):
a123-45678-000-00
a123-45679-001-00
...
dieser inhalt soll nun mit folgender FOR-schleife umbenannt und in eine neue txt gespeichert werden:
FOR /F "tokens=1,2,3 delims=-" %%a IN (test.txt) DO (
DIR C:\test\%%a_%%b_%%c >> test_neu.txt
)
ergebnis:
a123_45678_000
a123_45679_001
...
das klappt schon gut.
nun geht es aber weiter.nun steht aber,wenn er diese daten aus dem laufwerk zieht an der 15. stelle (gezählt wird ab der 1. stelle) ein buchstabe.je höher der buchstabe,desto aktueller ist die datei, sprich a < d < z < aa < ...
wenn ich aber mit der oben genannten "formel" das laufwerk auslese, bringt er mir alle dateien die bis zur 14. stelle so heißen.
er soll aber nur den aktuellsten nehmen,der der den höchsten buchstaben hat und diese in eine txt speichern.
hab schon versucht mit folgender formel das ganze zu machen, aber so richtig ist es noch nicht das was ich will.
FOR /F "tokens=1,2,3 delims=-" %%a IN (test.txt) DO DIR C:\test\ %%a_%%b_%%c FOR /L %%x IN (0,1,15) DO (
IF [%%x] EQU [14] IF [%%x] EQU [B] (
ECHO ok
)
)
also in worten ausgedrückt:
erst liest er die gezogene txt aus und sucht die entsprechende datei.dann soll er überprüfen (wenn er mehrere dateien mit dem selben namen (wie gesagt,bis zur 15. stelle gibt es mehrere dateien) findet),welche die aktuellste ist und diese dann in eine txt speichern.
so soll es aussehen:
gezogene txt:
a123-45678-000-00
a123-45679-001-00
...
umgewandelte txt:
a123_45678_000
a123_45679_000
...
gefundene dateien:
a123_45678_000A_20b.txt
a123_45678_000B_20b.txt
a123_45678_000D_20b.txt
a123_45679_001B_20b.txt
a123_45679_001H_20b.txt
a123_45679_001L_20b.txt
a123_45679_001W_20b.txt
a123_45679_001AA_20b.txt
...
endgültige bzw fertige txt:
a123_45678_000D_20b.txt
a123_45679_001AA_20b.txt
...
und das bekomm ich nicht hin.
hab zwar auch mit FINDSTR probiert aber da sucht er nur die raus die er mit dem entsprechendem buchstaben findet.also wenn er alle mit *B* findet,dann schreibt er diese raus,wenn er aber auch nach *C*
suchen soll,dann nimmt er diese auch raus und da beißen sich dann 2 dateien,da nur die eine,die aktuellste gebraucht wird.
kann mir da einer helfen?vielen dank im voraus schonmal.
Romero