viper-berlin
Goto Top

Setlocal wie bekommt man den wert aus einer lokalen Variable in eine globale Variable ??

Hi Leute,

habe folgendes Problem ich möchte mehrere globale Variable Werte aus Proceduren zurückgeben
wie geht das in CMD ????


echo off
cls
set /A  "glo_a=1"   & REM *** globale Variable ***  
set /A  "loc_a=8"   & REM *** globale Variable ***  

REM  *** HIER GLOBAL VARIABLEN  ***
echo #GLOBAL# global:%glo_a% local:%loc_a%

setlocal
    set /A  "loc_a=2"     & REM *** LOCAL VARIABLE ERZEUGEN MIT GLEICHEM NAMEN  ***   
   
    REM *** WIE KANN ICH HIER DER GLOBALEN VARIABLEN glo_a EIN ERGEBNISS ZUWEISEN ?? ***
    REM *** OHNE EINE NEUE VARIABLE GLO_A ZU ERZEUGEN DIE LOCAL IST ***
    
    set /A  "glo_a=loc_a + loc_a"      
    echo #SETLOCAL# global:%glo_a% local: %loc_a%
    call :test01
endlocal

REM  *** HIER WIEDER GLOBAL  ***
echo #GLOBAL RAUS AUS SETLOCAL# global:%glo_a% local: %loc_a%
pause
goto Bye

REM  *** PROCEDURE MACHE WAS ! z.B RECHNEN ÜBERGEBE WERT AN GLOBALE VARIABLE ? ***
:test01
     REM *** HIER SOLL WERT AN GLOBALE VARIABLE glo_a ÜBERGEBEN WERDEN WIE GEHT DAS ? ***     
     set /A  "glo_a=loc_a + loc_a + loc_a" & REM *** ist falsch da ja SET eine neue locale Variable erzeugt wird ***  
     echo #PROC# global:%glo_a% local: %loc_a% >>result.txt
     echo #PROC# global:%glo_a% local: %loc_a%      
GOTO :EOF

REM ** und Schüssss
:Bye

Content-ID: 224208

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

Ausgedruckt am: 22.11.2024 um 09:11 Uhr

Endoro
Lösung Endoro 11.12.2013 aktualisiert um 15:22:00 Uhr
Goto Top
Hey, ein Beispiel:
@ECHO OFF &SETLOCAL
set /a var1=1
set /a var2=1
SETLOCAL
set /a var1=2
set /a var2=2
ENDLOCAL &set /a var1=%var1%
ECHO var1=%var1% var2=%var2%
lg.
Viper-Berlin
Viper-Berlin 11.12.2013 um 15:55:52 Uhr
Goto Top
Super danke Endoro face-wink

klappt prima !!

ich habs mal auf meine Bedürfnisse angepasst mit mehreren Variablen ist das so richtig ????

Danke Vipy


@ECHO OFF
CLS
REM *** GLOBALE VARIABLEN ***
SET /a "glo1=1"  
SET /a "glo2=2"  
SET /A "gloRET=0"  
REM *** AUCH GLOBALE VARIABLEN ZUR ÜBERPRÜFUNG ***
SET /a "loc1=1"  
SET /a "loc2=1"  

REM *** MAIN PRG ***************************************************************
     ECHO Ergebnis VORHER  GLOBAL glo1=%glo1% glo2=%glo2% gloRET=%gloRET% loc1:%loc1% loc2=%loc2% 
    call :Rechnen
    ECHO Ergebnis NACHHER GLOBAL glo1=%glo1% glo2=%glo2% gloRET=%gloRET% loc1:%loc1% loc2=%loc2% 
    pause
goto bye

:Rechnen
   SETLOCAL
      REM *** locALE VARIABLEN ***
      ECHO Ergebnis  LOCAL glo1=%glo1% glo2=%glo2% gloRET=%gloRET% loc1:%loc1% loc2=%loc2% 
      SET /a "loc1=4"  
      SET /a "loc2=6"  
      SET /a "locRET=loc1*loc2"  
   ENDLOCAL &SET /a "glo1=%loc1%"  &SET /a "glo2=%loc2%"  &SET /a "gloRET=%locRET%"  
GOTO :EOF

REM *** ENDE BANANE....
:bye