Variablen In Batch Dateien
#1
geschrieben 09. Februar 2005 - 01:07
also ich hab in ne batch dateie ne variabele in ner goto schleife und jedesmal wenn die goto schleife von vorne anfängt soll die variable um 1 erhöht werden aber macht er nich er gibt immer nur 0 aus
mein code sieht so aus
@Echo Off
set var=0
:start
set %var%+1==%var%
echo %var%
pause
goto start
nutze winxp mit sp1
Anzeige
#2
geschrieben 09. Februar 2005 - 01:21
Ja, mata ne!
(For sending email please use OpenPGP encryption and signing. KeyID: 0xA0E28D18)
#3
geschrieben 09. Februar 2005 - 01:25
Dieser Beitrag wurde von heB_z0rL bearbeitet: 09. Februar 2005 - 01:28
#5
geschrieben 09. Februar 2005 - 12:04
Zählschleife Mit Batch
Zitat
FOR /L %Variable IN (Start,Schritt,Ende) DO Befehl [Parameter]
Der Satz ist eine Folge von Zahlen von Start bis Ende und der
angegebenen Schrittweite. So erstellt (1,1,5) die Folge 1 2 3 4 5 und
(5,-1,1) erstellt die Folge (5 4 3 2 1).
#6
geschrieben 09. Februar 2005 - 12:59
#7
geschrieben 09. Februar 2005 - 13:02
und das is iergendwie typisch wenn ich for help eingeb is nich aber help for is schon bei dem rest der befehle kann ich ja auch "Befehl" /? oder help eingeben... naja egal
#8
geschrieben 24. Juni 2009 - 12:23
Dein Beispiel von oben schaut dann so aus:
set /a var=0
:start
set /a var += 1
echo %var%
pause
goto start
#9
geschrieben 08. Februar 2012 - 09:57
Zitat (sushiba: 24. Juni 2009 - 12:23)
Moin shushiba, oder andere,
bei mir funktioniert dies mit dem Parameter /a nicht.
Mein Code sieht folgendermaßen aus:
set day=%date:~0,2%
set /a day=%day%-1
Egal wie ich versuche es rum zu drehen, es geht nicht. Bekomme immer folgenden Fehler:
Ungültige Zahl. Numerische Konstanten sind entweder dezimale (17),
hexadezimale (0x11) oder oktale (021) Zahlen.
Please Help! verzweifle -.-..
Kurzinfo: Brauche das Datum zusammen gebastelt in for von z.B.: 20120108 (yyyymmdd) und zwar immer der gestrige Tag.
Danke im Voraus
#10
geschrieben 08. Februar 2012 - 16:02
DiskCache=AllocateMemory(GetTotalAmountOfAvailableMemory);}
#11 _d4rkn3ss4ev3r_
geschrieben 08. Februar 2012 - 18:55
set day=%date:~-4%%date:~-7,2%%date:~0,2%
Und dann einfach:
set /a day-=1
#12
geschrieben 22. Januar 2014 - 23:48
mein name ist Stefan . fragen zu beantworten für batch.bat datein versuche ich immer mit %errorlevel% für jeden befehl zu verstehn . sollange ich mit dem win xp sammle bin ich kein profi sondern sammler .
vielleicht kann ich mit meinem skript als antwort arbeit ersparen
@echo off
set var=0
:start
set /a var=%var%+1
echo %var%
pause
if %var%==10 goto :eof
goto start
liebe grüße
#13
geschrieben 23. Januar 2014 - 00:07
Zitat (ledlightjungled: 22. Januar 2014 - 23:48)
mein name ist Stefan . fragen zu beantworten für batch.bat datein versuche ich immer mit %errorlevel% für jeden befehl zu verstehn . sollange ich mit dem win xp sammle bin ich kein profi sondern sammler .
vielleicht kann ich mit meinem skript als antwort arbeit ersparen
…
Na vielleicht hat ja auch jemand zum 10. Geburtstag des Threads nächstes Jahr den Erklärtext dechiffriert.
#14 _d4rkn3ss4ev3r_
geschrieben 23. Januar 2014 - 06:19
if errorlevel 1 echo Fehler.
Dein Script setzt einfach nur die Variable var +1. Ansonsten macht das ja nix
set /a var=%var%+1 kann man übrigens kürzen:
set /a var+=1
Ansonsten schreib deine Frage mal nochmal vernünftig!
#15
geschrieben 25. Februar 2015 - 08:25
Zitat (d4rkn3ss4ev3r: 23. Januar 2014 - 06:19)
if errorlevel 1 echo Fehler.
Dein Script setzt einfach nur die Variable var +1. Ansonsten macht das ja nix
set /a var=%var%+1 kann man übrigens kürzen:
set /a var+=1
Ansonsten schreib deine Frage mal nochmal vernünftig!
Rein theoretisch geht auch
set /a var=var+1... Naja, deins ist eh kürzer
Nur mal so ne Frage, was für ne zahl ist ne ganz normale Batch-Zahl? Integer? Weil das:
-1709589543
-944741150
1640636603
695895453
-1958435240
-1262539787
1073992269
-188547518
885444751
696897233
1582341984
-2015728079
-433386095
1845853122
1412467027
-1036647147
375819880
-660827267
-285007387
-945834654
War der (beschnittene) Output von meinem Fibonacci-Skript(Wer nicht weiß, was das ist, Fibonaccizahlen googlen ), der Code:
@echo off
set /a var = 1
set /a var2 = 0
:fib
set /a var2 = var + var2
echo %var2%
set /a var = var + var2
echo %var%
pause
goto fib
Das Drücken sie gedöns hab ich weggemacht
Am Anfang hat er normal gesagt 1 2 3 5 8 13 usw., dann nach einer relativ großen Zahl kamen plötzlich Minuszahlen?! Wtf? Hab ich was falsch gemacht?