tamara87
Goto Top

Ergebnisse einer Batch datei in ein Textdokument schreiben

Hallo zusammen,

ich hab leider nicht viel erfahrung mit Batch Dateien und sitze jetzt schon einige zeit an einem kleinen problem und zwar habe ich eine batch datei die von 1 bis 1024 hochzählt.
Das ist eigendlich auch richtig so, nur leider bekomme ich es nicht hin das alle hochgezählten Zahlen in ein Textdokument geschrieben werden.
Entweder schreibt er nur die erste Zahl rein oder nur die letzte. Was muss ich machen damit er alle Zahlen in einem Textdokument ausgibt ?

LG Tamara

Content-Key: 177533

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

Printed on: April 23, 2024 at 13:04 o'clock

Member: Biber
Biber Dec 10, 2011 at 16:29:03 (UTC)
Goto Top
Moin Tamara87,

zur Beantwortung der Frage wäre es nicht ganz unwesentlich, deinen Skriptschnipsel mitlesen zu dürfen.

Meinetwegen auch eine Kopie davon mit anonymisierten Laufvariablennamen.

Ein Beispiel zur Lösung wäre z.B. am CMD-Prompt
>con (for /L %i in (1,1,12) do @echo %i)

... wobei du natürlich statt ">con", also umleiten auf den Monitor, auch ">d:\temp\AlleZahlen.txt" schreiben kannst.
Und statt (1,1,12) natürlich auch (1,1,1024) nehmen kannst.

Grüße
Biber
Member: Tamara87
Tamara87 Dec 10, 2011 at 17:18:38 (UTC)
Goto Top
Ja klar hier ist der Dateiinhalt

@echo off &setlocal
:loop
set /a xCount+=1
set "output=00%xCount%"
set "output=%output:~-4%"
echo.%output%
if "%xCount%"=="1024" goto :exit
goto :loop

:exit
pause
Member: bastla
bastla Dec 10, 2011 at 18:43:12 (UTC)
Goto Top
Hallo Tamara87 und willkommen im Forum!

Was Du an Bibers Beispiel oben nichts siehst (weil er die gesamte Schleife "geklammert" hat und daher nur eine einzige Ausgabe stattfindet) ist die Möglichkeit, per Umleitung mit ">>" Zeilen an eine bestehende Datei anzufügen - da sollte es eigentlich genügen, in der Zeile, deren Nummer ich jetzt nicht nennen kann, weil Du keine "Code"- verwendet hast (was sich aber auch nachträglich noch machen ließe face-wink), etwa so
>>"D:\Dein Ordner\Deine Datei.txt" echo.%output%
das Ausgabeziel hinzuzufügen ...
BTW:
if "%xCount%"=="1024" goto :exit  
goto :loop

:exit
ließe sich etwas eleganter so schreiben:
if "%xCount%" neq "1024" goto :loop  
Grüße
bastla
Member: Tamara87
Tamara87 Dec 10, 2011 at 19:05:16 (UTC)
Goto Top
vielen dank für eure schnellen antworten
hat sofort geklappt

LG Tamara
Member: Biber
Biber Dec 10, 2011 at 20:21:20 (UTC)
Goto Top
Moin bastla,

Zitat von @bastla:

Was Du an Bibers Beispiel oben nichts siehst (weil er die gesamte Schleife "geklammert" hat und daher nur eine einzige Ausgabe stattfindet)
Wieso sollte sie denn nichts sehen?
Mein proof-of-concept von vorhin war...
(=17:22:27  d:\temp=)
>for /L %i in (1,1,12) do @echo %i
1
2
3
4
5
6
7
8
9
10
11
12

(=17:22:35  d:\temp=)
>>con (for /L %i in (1,1,12) do @echo %i)
1
2
3
4
5
6
7
8
9
10
11
12
[jeweils das erste ">" in den Befehlszeilen gehört mit zu meinem Prompt]

Grüße
Biber
Member: bastla
bastla Dec 10, 2011 at 20:28:05 (UTC)
Goto Top
Hallo Biber!
Wieso sollte sie denn nichts sehen?
Sorry - sollte "nicht siehst" heißen (weil Du eben nur die - sinnvollere - ">"-Version gezeigt hattest) ...

Grüße
bastla