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-Key: 166296

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

Printed on: April 20, 2024 at 02:04 o'clock

Member: mathe172
mathe172 May 15, 2011 at 18:51:05 (UTC)
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?
Member: der-blob
der-blob May 15, 2011 at 19:00:34 (UTC)
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.
Mitglied: 60730
60730 May 15, 2011 at 19:45:40 (UTC)
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
Member: rubberman
rubberman May 15, 2011 at 19:53:43 (UTC)
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
Member: der-blob
der-blob May 15, 2011 at 20:16:29 (UTC)
Goto Top
Vielen herzlichen dank an alle, das setlocal war mein fehler
Member: bastla
bastla May 15, 2011, updated at Oct 18, 2012 at 16:46:53 (UTC)
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
Member: rubberman
rubberman May 15, 2011 at 21:45:44 (UTC)
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