thomas0204
Goto Top

Per batch etwas aus suchliste suchen und nummerieren

ich habe mal wieder ein Problem und zwar habe ich eine Suchliste:

error 21-04-05*
error 21-03-06*
error 25-03-07*

jetzt suche ich mit dem Befehl dir nach den Dateien und bekomme diese Ergebnisse

C:\error\error 21-04-05_1.log
C:\error\error 21-04-05_2c.log

C:\error\error 21-03-06.log

C:\error\error 25-03-07_1.log
C:\error\error 25-03-07pro.log

jetzt möchte ich die ganze Sache nummerien und das ohne Pfad also ich möchte nachher so einen txt haben.

1 - error 21-04-05_1.log
1 - error 21-04-05_2c.log

2 - error 21-03-06.log

3 - error 25-03-07_1.log
3 - error 25-03-07pro.log

und noch cooler wäre es wenn das so aus sehen würde

001 - error 21-04-05_1.log
001 - error 21-04-05_2c.log

002 - error 21-03-06.log

003 - error 25-03-07_1.log
003 - error 25-03-07pro.log

...
106 - error 28-03-10_1.log
106 - error 28-03-10pro.log

ich habe auch schon ein script geschriebn nur irgendwie zählt der bei mir die zahl nicht hoch.

set /a var1=1
set /a var2=1
for /f "delims=" %%i in (suche.txt) do ( dir "%%i" /b /s >pfade.txt
for /f "usebackq tokens=3 delims=\" %%s in ("pfade.txt") do ( echo %%s >>"Name.txt"
for /f "usebackq delims=" %%i in ("Name.txt") do echo %var1% - %%i>>copy.txt
del Name.txt)
set /a var1=%var1%+%var2%)

ich hoffe mir kann einer helfen.
schon mal vielen Dank im voraus face-smile

Content-Key: 175142

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

Printed on: April 24, 2024 at 03:04 o'clock

Member: Friemler
Friemler Oct 23, 2011 at 13:00:09 (UTC)
Goto Top
Dein Stichwort heißt "verzögerte Variablenerweiterung". Siehe auch hier.
Member: bastla
bastla Oct 23, 2011 at 13:45:43 (UTC)
Goto Top
Hallo Thomas0204 (ich habe kein Problem - auch nicht damit, eine kurze Begrüßung zu verwenden)!

Ergänzend zu Friemlers Hinweis: Zwischendateien wie "pfade.txt" oder "Name.txt" sind eigentlich nicht erforderlich - es sollte in etwa
@echo off & setlocal enabledelayedexpansion
set /a var1=1001
for /f "delims=" %%i in (suche.txt) do (  
    for /f "delims=" %%s in ('dir "%%i" /b /s') do echo %var1:~-3% - %%~nxs  
    echo\
    set /a var1+=1
)>>copy.txt
genügen (ungetestet) ...

Grüße
bastla

P.S.: "Code"- lässt sich auch nachträglich noch durchführen ...
Member: Biber
Biber Oct 23, 2011 at 17:03:25 (UTC)
Goto Top
[OT]
und neben fehlender Begrüßung und fehlender Codeformatierung existiert noch ein drittes Fettnäpfchen, das du ebenso treffsicher gefunden hast
schon mal vielen Dank im voraus.

Grüße
Biber
[/OT]