der-blob
Goto Top

Wert aus Batch datei übernehmen

Guten abend,

ich habe ein kleines - neues - problem, ich habe eine Aufgabe.cmd datei, welche fast komplett arbeitet wie sie soll, jedoch habe ich ein problem mit in par variablen bzw. werte


ich habe unter anderen diese zeile in mein programm, dies tut auch
call %~dp0\rechnen.bat %falsewert%
und das was in der rechnen.bat gerechnet wird stimmt auch soweit,

Doch ich benötige den ergebnisswert aus aus der rechnen.bat da das ergebniss für den weiteren ablauf der Aufgabe.cmd datei benötigt wird.

Nun meine Frage: Ist es möglich den wert, welcher in der Rechnen.bat raus kommt, in Aufgabe.cmd zu übernehmen? Oder ist ein sinnvoller den folgenden ablauf von der Aufgabe.cmd in die Rechnen.bat einzufügen??

Grüße Blob!

Content-ID: 166296

Url: https://administrator.de/forum/wert-aus-batch-datei-uebernehmen-166296.html

Ausgedruckt am: 10.01.2025 um 06:01 Uhr

mathe172
mathe172 15.05.2011 um 20:51:05 Uhr
Goto Top
Hallo,

wenn du eine Batch aufrufst (mit call, "call rechnen %falsewert%" sollte schon reichen) kannst du alle Variablen, die in Rechnen.bat gesetzt werden, auch in Aufgabe.cmd verwenden.

Mathe172
P.S.:Warum eigentlich .cmd und .bat?
der-blob
der-blob 15.05.2011 um 21:00:34 Uhr
Goto Top
Danke für die Antwort, jedoch kann ich %Ergebnis% aus der Rechne.bat ausgeben lassen (wenn ich ein echo %Ergebnis% in der Rechne.bat einfüge), jedoch weis ich nicht wie ich den wert in die Aufgabe.cmd übernehme.
Denn wenn ich mir in der Aufgabe.cmd %Ergebnis% ausgeben lassen will, ist es leer, also nicht vorhanden, nicht definiert.

und warum .cmd .bat , weis ich um ehrlich zu sein spontan auch nicht, hatte ausversehn bei der Rechne.bat nen .bat gemacht eim erstellen, aber kann man ja problemlos ändern.
60730
60730 15.05.2011 um 21:45:40 Uhr
Goto Top
moin,

test1.cmd
call test2.cmd 123
set abc
pause
test2.cmd
echo test 2
set /a abc=123+1-%1

demo an der Dosbox
C:\script\tester>call test2.cmd 123

C:\script\tester>echo test 2
test 2

C:\script\tester>set /a abc=123+1-123

C:\script\tester>set abc
abc=1

C:\script\tester>pause
Drücken Sie eine beliebige Taste . . .
Noch Fragen, Kienzle? - Nein, Hauser.

Grünen Haken dran und gut isses

edit @rubberman - aber dann nur in Kombi mit echo offfffffffffffffffffffffffffffffffffffffff
rubberman
rubberman 15.05.2011 um 21:53:43 Uhr
Goto Top
Hallo der-blob.

Ohne den Code deiner Dateien zu kennen, wird das nur Rätselraten.
Meine Vermutung: Du hast ein SETLOCAL in rechnen.bat.

Grüße
rubberman
der-blob
der-blob 15.05.2011 um 22:16:29 Uhr
Goto Top
Vielen herzlichen dank an alle, das setlocal war mein fehler
bastla
bastla 15.05.2011, aktualisiert am 18.10.2012 um 18:46:53 Uhr
Goto Top
... wobei sich aber auch bei Verwendung von "setlocal" der Wert "drüberretten" lassen sollte (hat vor langer Zeit - in einer Zeile 16 face-wink - demonstriert):
setlocal
...
set "abc=irgendwas"  
...
endlocal & set "abc=%abc%"  
Grüße
bastla
rubberman
rubberman 15.05.2011 um 23:45:44 Uhr
Goto Top
Hallo bastla,

im Fall von numerischen Werten käme auch noch der Returncode infrage.
:: caller.cmd
@echo off &setlocal
call rechnen 123
echo %errorlevel%
pause

:: rechnen.cmd
@echo off &setlocal
set /a ergebnis=%1 - 23
exit /b %ergebnis%

Letztlich würde aber auch das in die Rubrik "Warum einfach, wenns auch kompliziert geht?" fallen.

Grüße
rubberman