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-ID: 177533

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

Ausgedruckt am: 22.11.2024 um 22:11 Uhr

Biber
Biber 10.12.2011 um 17:29:03 Uhr
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
Tamara87
Tamara87 10.12.2011 um 18:18:38 Uhr
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
bastla
bastla 10.12.2011 um 19:43:12 Uhr
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
Tamara87
Tamara87 10.12.2011 um 20:05:16 Uhr
Goto Top
vielen dank für eure schnellen antworten
hat sofort geklappt

LG Tamara
Biber
Biber 10.12.2011 um 21:21:20 Uhr
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
bastla
bastla 10.12.2011 um 21:28:05 Uhr
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