Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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

syntaxfehler beim übergeben mehrerer variablen

Frage Entwicklung Batch & Shell

Mitglied: erik87

erik87 (Level 1) - Jetzt verbinden

10.10.2007, aktualisiert 20:29 Uhr, 5231 Aufrufe, 4 Kommentare

Hallo,

ich habe ein kleines problem mit dem syntax beim variablen übergeben in eine andere Batch-datei.

Ich habe eine batch, dat1.bat, welche mehrere variablen an eine weitere, dat2.bat, übergeben soll. Ist es möglich dies über das programm start zu ermöglichen, sodass ich sie nicht in eine datei speichern und dann in der anderen batch wieder auslesen muss?

Bsp.:
::dat1.bat
01.
@echo off 
02.
set a=1 
03.
set b=2 
04.
 
05.
start dat2.bat %a% %b% 
06.
pause>1
Mit nur einer Variable ist es möglich! habe schon kombinationen mit & , ; | () versucht... hat nicht geklappt ;-(

::dat2.bat
01.
@echo off 
02.
echo %a%; %b% 
03.
pause>2
Und muss ich hier setlocal delayedexpansions anwenden?
Ich möchte eigentlich in der dat2.bat die variable benutzen, verändern und dann wieder zurück an dat1.bat geben.
Ich habe windows vista, aber kein aktuelles update.

Danke schonmal im vorraus.


gruß, erik
Mitglied: Dani
10.10.2007 um 19:56 Uhr
Hallo Erik,
also ich würde es mal so probieren:
dat1.bat:
01.
@echo off 
02.
set a=1 
03.
set b=2 
04.
 
05.
start dat2.bat %a% %b% 
06.
pause>1
Die dat2.bat sieht ein bisschen anders aus:
01.
@echo off 
02.
echo %1 
03.
echo %2 
04.
 
05.
pause>2
Die übergebene Variablen werden nacheinander mit %1-%n angesprochen. Sprich es gelten die Variablen von Batch A nicht automatisch in Batch B. Ausnahmen sind die Systemvariablen bzw. glob. Variablen.
So, nun hätten wir mal die Variablen im andern Batch zur Verfügung.

Ich möchte eigentlich in der dat2.bat die variable benutzen, verändern und dann wieder
zurück an dat1.bat geben.
Was genau möchtest du denn in die dat2.bat packen. Funktionen gibt es so nicht wie z.B. in C#!


Grüße
Dani
Bitte warten ..
Mitglied: bastla
10.10.2007 um 20:01 Uhr
Hallo erik87!

Eigentlich sollte dafür ein "call" genügen, also:
01.
@echo off 
02.
set a=1 
03.
set b=2 
04.
call dat2.bat 
05.
echo Wieder in dat1: %a%; %b%
Wenn Du in "dat2.bat" kein "setlocal" verwendest, kannst Du dort die Variablenwerte auch verändern:
01.
@echo off 
02.
echo In dat2: %a%; %b% 
03.
set a=0 
04.
set b=5
Grüße
bastla
Bitte warten ..
Mitglied: erik87
10.10.2007 um 20:17 Uhr
erstmal recht herzlichen dank,

hmm ja also ich, ist mir nen bischen peinlich.. aber ich hab den fehler gefunden warum es nicht ging mit den variablen übermitteln..

ich hatte

set %b%=2

geschrieben...

hmm also das geht soweit!
ich möchte jetzt, wo ich die variablen übergeben habe, sie durch rechnungen verändern und dann wieder zurückgeben.
Da das programm zu lang wird wollte ich es in einzelne programme aufteilen. So dass ich ein hauptprogramm habe (dat1) welches die eingaben vornimmt und dann weiterführende programme startet. Ihr müsst entschuldigen ich beschäftige mich erst seit 6 wochen mit batch.
und wisst ihr ob es eine math-funktion im batch gibt? ich habe nähmlich festgestellt das batch weitaus übersichtlicher ist wie c++ und somit könnte ich das ganze programm in batch schreiben.
Bitte warten ..
Mitglied: erik87
10.10.2007 um 20:29 Uhr
Ok , recht herzlichen Dank Bastla,
hab es hinbekommen!
man darf die 2. *.bat datei nicht mit exit beenden! Hmm, hätte ich eigentlich auch vorher drauf kommen können! Den rest bekomm ich dann glaub ich selber hin!

Noch mal vielen Dank für die schnellen Antworten!
Damit ist mein problem gelöst!

Gruß, erik
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
gelöst Ausgelagerte Variablen in Batchdatei (6)

Frage von mp-home zum Thema Batch & Shell ...

Datenbanken
SQL Trigger: Komplette Row an Stored Procedure übergeben (9)

Frage von BirdyB zum Thema Datenbanken ...

Heiß diskutierte Inhalte
Windows Installation
Eine etwas (wirklich) speziellere Frage: Windows 10-Installation über (16)

Frage von DerFurrer zum Thema Windows Installation ...

Netzwerkgrundlagen
gelöst Cisco SG500 Series LAG hat sich von selbst umgestellt (11)

Frage von Ex0r2k16 zum Thema Netzwerkgrundlagen ...

Multimedia & Zubehör
gelöst Iphone 6 prob (10)

Frage von jensgebken zum Thema Multimedia & Zubehör ...

Linux
gelöst Boot failed: not a bootable disk (10)

Frage von Fleckmen zum Thema Linux ...