Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

gelöst 1. Batch CALL mit for in 2. Batch Variable an 1. Batch übergeben.

Mitglied: florengray

florengray (Level 1) - Jetzt verbinden

27.02.2008, aktualisiert 28.02.2008, 20468 Aufrufe, 4 Kommentare

Hallo,
mal wieder ein Batch Problem:

Kurz gesagt ich habe eine Hauptbatch, die eine Variable per call an eine 2. Batch übergeben soll.
Das funktioniert. In der 2. Batch findet eine Art Vergleich statt. Da das mehere If Schleifen sind, wollte ich diese Abfrage in einer separaten Batch machen. (Zeit und Übersicht)

Also meine 1. Batch hat ne Variable %ASTC%. Dann wird die 2. Batch aufgerufen. (call) und %ASTC% übergeben.
Der Wert in %ASTC% wird nun mit einer Art Datenbank verglichen. Wenn der Wert von %ASTC% vorhanden ist, dann wird per for in eine neue Variable (%ASOP%) bis zu 6 versch. Werte nacheinander geschrieben.
Also %ASOP% hat dann z.B. den Wert UUU.
Der soll wieder an die 1. Batch übergeben werden.
Wenn die Berechnung in der 1. Batch fertig ist, dann soll %ASOP% in der 2. Batch einen neuen Wert annehmen.
Z.B. UUC. Der soll wieder an die erste Batch übergeben werden........

Aber das krieg ich nett hin.

Ich müsste theoretisch aus der 2. Batch per call die 1. wieder aufrufen. Aber das geht ja nett.
Ich hätte eine mehr als Umständliche Lösung, aber die kommt nicht in Frage, wenn meine Batch später mal an die 1000 Werte verarbeiten soll.

Habt ihr da ne Lösung?

Wahrscheinlich habe ich die Parameterübergabe nett kapiert!?

florengray
Mitglied: miniversum
27.02.2008 um 20:03 Uhr
Das ist ganz einfach. Du mußt garnichts zurück übergeben. Das was Du in der Batch 1 weiterverarbeiten willst hast du ja in der batch 2 in die Variable %ASOP% geschrieben.
Wenn du jetzt die Batch 2 beendest kannst du die Variable %ASOP% danach in Batch 1 ganz normal benutzen. Das funktioniert allerdings nur solange du in der Batch 2 kein setlocal am anfang benutzt
Bitte warten ..
Mitglied: florengray
27.02.2008 um 20:43 Uhr
Hallo,
hilft mir ein wenig.

Hauptbatch:
@echo off
call Subbatch.bat
echo %x%
pause

Subbatch:
@echo off
for %%a in (A B C D) do set x=%%a & goto :eof

Es soll in der Hauptbatch nacheinander A B C D ausgegeben werden.

Es ist aber nur ein A!
Dann nix mehr.
Logisch , weil ja die Subbatch beendet wurde.
Bitte warten ..
Mitglied: miniversum
28.02.2008 um 09:28 Uhr
Ja da muß die For Schleife dann in die Hauptbatch oder die ausgabe in die Subbatch. So in der Form kann das keine Programmiersprache.
Bitte warten ..
Mitglied: florengray
28.02.2008 um 22:59 Uhr
Hallo,
also ich hab jetzt ne Lösung:

Hauptbatch:
01.
@echo off  
02.
echo Hauptroutine: 
03.
 
04.
for %%a in (A B C D) do set z=%%a& call :A 
05.
echo ende Hauptroutine 
06.
pause 
07.
goto :eof 
08.
 
09.
:A 
10.
set x=%z% 
11.
echo -%x%- 
12.
pause 
13.
call F:\Testbibo.bat %* 
14.
echo ende Unteroutine 
15.
echo Auswertung: 
16.
for %%b in (%y%) do @echo %%b 
17.
pause 
18.
goto :eof
Unterroutine:
01.
@echo off  
02.
 
03.
if %x%==A goto A 
04.
if %x%==B goto B 
05.
if %x%==C goto C 
06.
if %x%==D goto D 
07.
 
08.
:A 
09.
set y=1 2 3 4  
10.
goto :eof 
11.
:B 
12.
set y=4 3 2 1 
13.
goto :eof 
14.
:C 
15.
set y=2 1 3 4 
16.
goto :eof 
17.
:D 
18.
set y=3 4 2 1 
19.
goto :eof
Ich hoffe es ist verständlich?

Aber dennoch ne Erklärung.

Wie schon erwähnt geht dieses "doppelte" aufrufen nicht.
Also musste ich jetzt die 2. for in die Hauptbatch schreiben.
Grund: Ich will ja alle Möglichkeiten ausgegeben haben.

Die 1. For kreiert mir nur ne paar mehr Möglichkeiten. Ist nicht zwingend erforderlich.
Es wird also jetzt die Variable x an die Unterroutine übergeben.
Dort findet der Vergleich statt. Dann werden alle Möglichkeiten in die Variable y geschrieben
und die Unterroutine beendet.
Diese 2. For wertet jetzt den Inhalt der y Variable aus und gibt mir, wie es eben eine For so tut, alle Möglichkeiten aus.

Eigentlich ganz einfach.

Wem´s hilft kann sich´s ja kopieren.

Schönen Abend noch

florengray
Bitte warten ..
Ähnliche Inhalte
Batch & Shell

Übergabe der Variablen bei Call funktioniert nicht

gelöst Frage von SupidoBatch & Shell2 Kommentare

Hallo, ich komme mit menem untenstehnden Code nicht weiter. In :install bekomme ich nicht die richtigen Variablen ("%Pathdriver%" "%Printername%") ...

Batch & Shell

2 Spalten einer CSV per Batch in Variable auswerten und an MSSQL-Query übergeben

Frage von chgs2011Batch & Shell25 Kommentare

Hallo, ich habe eine primitive CSV-Datei, die ich gerne auswerten würde (Spaltentrenner ";"). Die CSV hat beliebig viele Zeilen, ...

Batch & Shell

Batch: Parameter in einer For Schleife an eine Variable übergeben

gelöst Frage von BatchAnfaenger91Batch & Shell2 Kommentare

Hallo Liebe Leute, nun bin ich fast am Ende und bleibe trotzdem an Parameterübergabe hängen. Hier ist mein bisheriger ...

Batch & Shell

Powershell invoke Command Variablen übergeben

gelöst Frage von H41mSh1C0RBatch & Shell4 Kommentare

Guten Morgen in die Runde, Die Übergabe von Variablen scheint an sich nicht wild: " Mir gibt er gerade ...

Neue Wissensbeiträge
Humor (lol)
IoT-Gefahr: Smartes Aquarium leckt!
Information von Lochkartenstanzer vor 14 StundenHumor (lol)3 Kommentare

Moin, Die IoT-Manie hat weitere Opfer gefunden. Ein Casino-Leck durch ein smartes Aquarium: Allerdings haben sie kein Wasser, sondern ...

Router & Routing

Alte Fritzbox 7270 mit VPN und SIP-Telefonie hinter O2 Homebox 6641 als "Modem"

Erfahrungsbericht von the-buccaneer vor 22 StundenRouter & Routing3 Kommentare

Nun war es soweit: Auch O2 hat mich mit VOIP zwangsbeglückt. Heute am Privatanschluss, in 2 Wochen ist das ...

Sicherheit

Ungepatchte Remote Code Execution-Lücke in LG NAS

Information von kgborn vor 1 TagSicherheit

Nutzt wer LG NAS-Einheiten? In den NAS-Einheiten der LG Network Storage-Einheiten gibt es eine sehr unschöne Schwachstelle, die einen ...

Windows Update

Neue Version KB4099950 NIC Einstellungen gehen verloren

Information von sabines vor 1 TagWindows Update2 Kommentare

Es ist eine neue Version des KB4099950 verfügbar, die das Problem mit den verlorenen Netzwerkeinstellungen lösen soll. Das Datum ...

Heiß diskutierte Inhalte
Sicherheit
Verbindliche Zustellung per E-Mail?
Frage von ahussainSicherheit18 Kommentare

Hallo allerseits, ein Kunde von mir nutzt intensiv Fax. Hauptgrund: zusammen mit einer Empfangsbestätigung ist eine verbindliche Zustellung gewährleistet. ...

Sonstige Systeme
Wie Normenkataloge im Unternehmen bereit stellen?
Frage von MuzzepuckelSonstige Systeme14 Kommentare

Hallo Kollegen, ich lese schon lange hier mit, nun mein ersrer Beitrag, bzw. Frage. :-) Wir benötigen für unsere ...

SAN, NAS, DAS
Entscheidung SAN Dell oder HP
Frage von VincorSAN, NAS, DAS13 Kommentare

Hallo, wir wollen uns für unsere Hyper V Umgebung eine neue SAN Anschaffen. Es laufen 30 VM's darunter, DC; ...

Linux Netzwerk
Raspberry Pi 3: WLAN Power save deaktivieren
Frage von nordie92Linux Netzwerk12 Kommentare

Moin moin, mein Raspberry Pi 3 Model B benötigt eine dauerhaft aktive WLAN-Verbindung. Leider bricht die WLAN-Verbindung nach einigen ...