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, 5243 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
PHP
gelöst HTML Dropdownmenü auslesen und in PHP als Variable übergeben (35)

Frage von ITFlori zum Thema PHP ...

Batch & Shell
gelöst Powershell invoke Command Variablen übergeben (4)

Frage von H41mSh1C0R zum Thema Batch & Shell ...

Neue Wissensbeiträge
Windows Update

Microsoft Update KB4034664 verursacht Probleme mit Multimonitor-Systemen

(2)

Tipp von beidermachtvongreyscull zum Thema Windows Update ...

Viren und Trojaner

CNC-Fräsen von MECANUMERIC werden (ggf.) mit Viren, Trojanern, Würmern ausgeliefert

(4)

Erfahrungsbericht von anteNope zum Thema Viren und Trojaner ...

Windows 10

Windows 10: Erste Anmeldung Animation deaktivieren

(3)

Anleitung von alemanne21 zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Netzwerkgrundlagen
Kann auf Freigabe nicht Zugreifen (19)

Frage von leon123 zum Thema Netzwerkgrundlagen ...

Windows Server
gelöst Neues KB für W10 1607 und W2K16 wieder mal nicht im WSUS 3.0, hat das noch jemand? (16)

Frage von departure69 zum Thema Windows Server ...

Windows Server
DC virtualisieren + wie sichern (SingleDC-Environment) (12)

Frage von KMUlife zum Thema Windows Server ...

Festplatten, SSD, Raid
RAID Controller mit Trim-Funktion, wie ermitteln (11)

Frage von pixel24 zum Thema Festplatten, SSD, Raid ...