WinFuture-Forum.de: Variablen In Batch Dateien - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
  • 2 Seiten +
  • 1
  • 2

Variablen In Batch Dateien


#1 Mitglied ist offline   heB_z0rL 

  • Gruppe: Mitglieder
  • Beiträge: 6
  • Beigetreten: 29. Januar 05
  • Reputation: 0

  geschrieben 09. Februar 2005 - 01:07

hallo hab n problem
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
0

Anzeige



#2 Mitglied ist offline   Rika 

  • Gruppe: aktive Mitglieder
  • Beiträge: 11.533
  • Beigetreten: 11. Juni 03
  • Reputation: 2
  • Geschlecht:Männlich

geschrieben 09. Februar 2005 - 01:21

"set" kann nicht numerisch rechnen. Zählschleifen macht man mit "for /l".
Konnichiwa. Manga wo shitte masu ka? Iie? Gomenne, sonoyouna koto ga tabitabi arimasu. Mangaka ojousan nihongo doujinshi desu wa 'Clamp X', 'Ayashi no Ceres', 'Card Captor Sakura', 'Tsubasa', 'Chobits', 'Sakura Taisen', 'Inuyasha' wo 'Ah! Megamisama'. Hai, mangaka gozaimashita desu ni yuujin yori.
Eingefügtes Bild
Ja, mata ne!

(For sending email please use OpenPGP encryption and signing. KeyID: 0xA0E28D18)
0

#3 Mitglied ist offline   heB_z0rL 

  • Gruppe: Mitglieder
  • Beiträge: 6
  • Beigetreten: 29. Januar 05
  • Reputation: 0

geschrieben 09. Februar 2005 - 01:25

k geht nich kannst du mir den code posten mit dem das geht? ^^

Dieser Beitrag wurde von heB_z0rL bearbeitet: 09. Februar 2005 - 01:28

0

#4 Mitglied ist offline   sкavєи 

  • Gruppe: aktive Mitglieder
  • Beiträge: 6.735
  • Beigetreten: 20. Juli 04
  • Reputation: 62
  • Geschlecht:Männlich
  • Wohnort:Stralsund

geschrieben 09. Februar 2005 - 07:47

Hier hast du aber noch was anderes erzählt, Rika.
Eingefügtes Bild
Eingefügtes Bild
0

#5 Mitglied ist offline   puppet 

  • Gruppe: aktive Mitglieder
  • Beiträge: 2.857
  • Beigetreten: 27. April 04
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Rudoltown

geschrieben 09. Februar 2005 - 12:04

Nö er sagt ganz klar, dass er es mit FOR /L machen muss:

Zählschleife Mit Batch

Zitat

Also "HELP FOR" sagt mir ganz eindeutig:

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).

0

#6 Mitglied ist offline   sкavєи 

  • Gruppe: aktive Mitglieder
  • Beiträge: 6.735
  • Beigetreten: 20. Juli 04
  • Reputation: 62
  • Geschlecht:Männlich
  • Wohnort:Stralsund

geschrieben 09. Februar 2005 - 12:59

Oh! Ich habe das kleine L da oben als I interpretiert. Holla... wie peinlich! :P
Eingefügtes Bild
Eingefügtes Bild
0

#7 Mitglied ist offline   heB_z0rL 

  • Gruppe: Mitglieder
  • Beiträge: 6
  • Beigetreten: 29. Januar 05
  • Reputation: 0

geschrieben 09. Februar 2005 - 13:02

omg wie umständlich ~.~ es gibt also keine möglichkeit das ich die variabele als integer deklaniere und dann einfach nen zahlenwert dazu zählen kann? wenn ja muss ich doch mal ne vernünftige prog sprache lerenen >.>

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
0

#8 Mitglied ist offline   sushiba 

  • Gruppe: Mitglieder
  • Beiträge: 1
  • Beigetreten: 24. Juni 09
  • Reputation: 0

geschrieben 24. Juni 2009 - 12:23

Es geht auch ohne FOR-Schleife dafür muss aber die Befehlszeilenerweiterung an sein (isse per Dafult aber auch)

Dein Beispiel von oben schaut dann so aus:

@Echo Off
set /a var=0

:start
set /a var += 1
echo %var%
pause
goto start

0

#9 Mitglied ist offline   Georgee 

  • Gruppe: Mitglieder
  • Beiträge: 1
  • Beigetreten: 08. Februar 12
  • Reputation: 0

geschrieben 08. Februar 2012 - 09:57

Beitrag anzeigenZitat (sushiba: 24. Juni 2009 - 12:23)

Es geht auch ohne FOR-Schleife dafür muss aber die Befehlszeilenerweiterung an sein (isse per Dafult aber auch)


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
0

#10 Mitglied ist offline   Kirill 

  • Gruppe: aktive Mitglieder
  • Beiträge: 3.590
  • Beigetreten: 04. Dezember 06
  • Reputation: 121
  • Geschlecht:Männlich
  • Wohnort:BT

geschrieben 08. Februar 2012 - 16:02

Das Datum ist keine Zahl, du schreibst da klar einen String rein in deine Variable. Mach doch einfach mal set day=2, dann kannst du damit rechnen.
Most rethrashing{
DiskCache=AllocateMemory(GetTotalAmountOfAvailableMemory);}
0

#11 _d4rkn3ss4ev3r_

  • Gruppe: Gäste

geschrieben 08. Februar 2012 - 18:55

Um das Datum in yyyymmdd zu bekommen geht folgendes:

set day=%date:~-4%%date:~-7,2%%date:~0,2%

Und dann einfach:

set /a day-=1
0

#12 Mitglied ist offline   ledlightjungled 

  • Gruppe: aktive Mitglieder
  • Beiträge: 34
  • Beigetreten: 22. Januar 14
  • Reputation: 0
  • Geschlecht:Männlich

geschrieben 22. Januar 2014 - 23:48

guten tag ,
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
0

#13 Mitglied ist offline   Holger_N 

  • Gruppe: aktive Mitglieder
  • Beiträge: 5.111
  • Beigetreten: 11. September 10
  • Reputation: 458
  • Geschlecht:Männlich

geschrieben 23. Januar 2014 - 00:07

Beitrag anzeigenZitat (ledlightjungled: 22. Januar 2014 - 23:48)

guten tag ,
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.
Bauernregel: Regnets mächtig im April, passiert irgendwas, was sich auf April reimt.
0

#14 _d4rkn3ss4ev3r_

  • Gruppe: Gäste

geschrieben 23. Januar 2014 - 06:19

Um Probleme zu ermitteln brauchst du nur ein
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!
0

#15 Mitglied ist offline   Hastumer 

  • Gruppe: Mitglieder
  • Beiträge: 1
  • Beigetreten: 25. Februar 15
  • Reputation: 0
  • Geschlecht:Männlich

geschrieben 25. Februar 2015 - 08:25

Beitrag anzeigenZitat (d4rkn3ss4ev3r: 23. Januar 2014 - 06:19)

Um Probleme zu ermitteln brauchst du nur ein
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 :P

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 :P), 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 :P
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?
Wo bin ich hier? *In einem Irrenhaus* Und... wo ist der Ausgang? *Was ist ein Ausgang?*
0

Thema verteilen:


  • 2 Seiten +
  • 1
  • 2

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0