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

Einen Parameter von einen DOS Batch an einen anderen Batch übergeben und dann je nach Parameter einen Wert zuweisen

Frage Entwicklung Batch & Shell

Mitglied: tommhii

tommhii (Level 1) - Jetzt verbinden

04.11.2010 um 14:30 Uhr, 7231 Aufrufe, 6 Kommentare

Hallo,
ich möchte einen Parameter %1 den ich aus einen anderen DOS Batch übergeben bekommen hab einen Wert zu weisen

Hallo,

ich bekomm aus dem vorher gehenden Batch einen Parameter %1 der den Inhalt MV ,AC oder BI haben kann.
Nun möchte ich den Parameter %1 abfragen welchen Inhalt er hat und je nach Inhalt einen Wert zu weisen MV --> -u, AC ---> -t,BI --->-b

so sieht mein 2. Batch aus aber leider passt aber da etwas nicht.


@echo off
cls
if "%1"=="AC" GOTO m66 Kommentar wenn %1 gleich AC als Inhalt hat, dann springe nach m66 und setze für den Parameter para den Wert "-t" usw.
:m66
set "para=-t"
goto m99
if "%1"=="MV" GOTO m77
:m77
set "para=-u"
goto m99
if %1==BI GOTO m88
:m88
set "para=-b"
:m99
echo %1
echo %para%
pause

aber irgendwie bekomm ich das nicht hin

hat jemand eine Idee
Danke erstmal
Mitglied: BigWim
04.11.2010 um 14:59 Uhr
Hallo tommhii

ich schätze mal (blind), dass es ein Problem der Groß/Kleinschreibung ist. Deshalb habe ich mal ein /i davor gesetzt, dann ist es nämlich egal

Ansonten würde ich das so schreiben

01.
cls 
02.
set "para=dat war nix" 
03.
if /i "%1"=="AC" set "para=-t" 
04.
if /i "%1"=="MV" set "para=-u" 
05.
if /i "%1"=="BI" set "para=-b" 
06.
echo %1  
07.
echo %para%
Markus
Bitte warten ..
Mitglied: 60730
04.11.2010 um 15:04 Uhr
Moin,

problembatche mit @echo off krieg ich auch nen rgc counter?

zur Frage - nein das geht nicht. %1 ist %1 und bleibt es auch.

if "%1"=="AC" GOTO m66
macht keinen Sinn, weil egal was %1 wäre m66 der nächste Schritt ist.
if %1==BI GOTO m88
gleiches Spiel
Ps: bei Sprungzielen, die extern angesprochen werden macht sich das Prinzip Übergabe==Sprungname sinnvoll bemerkbar.

01.
if not /i "%1"=="" goto %1 
02.
echo schit happens & pause 
03.
goto end 
04.
 
05.
:AC 
06.
set "para"="-t" 
07.
echo %para% 
08.
pause 
09.
:end
gruß

edit - mein Cache spinnt..... Da war Bigwim ja schon längst dran.../edit
Bitte warten ..
Mitglied: BigWim
04.11.2010 um 16:00 Uhr
Zitat von 60730:

@TimoBeil
edit - mein Cache spinnt..... Da war Bigwim ja schon längst dran.../edit
Ein Glück!

Auf diese Idee bin ich auch noch nicht gekommen!


01.
if not /i "%1"=="" goto %1

Danke!
Markus
Bitte warten ..
Mitglied: Biber
04.11.2010 um 16:42 Uhr
Ja nee, BigWim,

Zitat von BigWim:
Auf diese Idee bin ich auch noch nicht gekommen!
01.
 if not /i "%1"=="" goto %1
Das ist aber superwackelig....
-> wenn ich als Parameter %1 "Goldhamster" übergebe, springt er dann zum Label :Goldhamster?
Okay, wenn ich als Parameter "Grütze", "Nesseln" oder "Kreissäge" übergebe, dann landet er genau dort, aber sonst nicht.

Dann doch lieber sowohl einen leeren wie auch alle verkehrten Parameter ausschliessen.

01.
... 
02.
For %%i in (m66,m77,m99) do @if /i "%%i"=="%~1" Goto :%%i 
03.
goto :Tilt 
04.
 
05.
:m66 
06.
echo m66fall ... 
07.
goto :eof 
08.
 
09.
:m77 
10.
echo m77fall ... 
11.
goto :eof 
12.
... 
13.
:Tilt 
14.
echo Tiltemacht...
Grüße
Biber
Bitte warten ..
Mitglied: BigWim
04.11.2010 um 17:24 Uhr
Hallo Biber,

vielen Dank für die Klarstellung. Habe ich verstanden - und schon wieder was zum forschen gefunden

01.
For ... =="%~1" ....
Markus
Bitte warten ..
Mitglied: tommhii
05.11.2010 um 08:43 Uhr
Super Idee klappt prima

danke Euch nochmal für die Hilfe
Bitte warten ..
Ähnliche Inhalte
Neue Wissensbeiträge
Peripheriegeräte

Was beachten bei der Wahl einer USV Anlage im Serverschrank

(2)

Tipp von zetboxit zum Thema Peripheriegeräte ...

Windows 10

Das Windows 10 Creators Update ist auf dem Weg

(5)

Anleitung von BassFishFox zum Thema Windows 10 ...

Administrator.de Feedback

Tipp: Ungelöste Fragen ohne Antwort in Tickeransicht farblich hinterlegen

Tipp von pattern zum Thema Administrator.de Feedback ...

Viren und Trojaner

Neue Magazin Ausgabe: Malware und Angriffe abwehren

Information von Frank zum Thema Viren und Trojaner ...

Heiß diskutierte Inhalte
Windows Systemdateien
Warum System auf "C:" (29)

Frage von DzumoPRO zum Thema Windows Systemdateien ...

LAN, WAN, Wireless
Cisco SG200: Auf bestimmtem vLAN bestimmte TCP-Ports sperren (16)

Frage von SarekHL zum Thema LAN, WAN, Wireless ...

Windows Server
gelöst Update BackupExec 2015 auf 2016 führt zu SQL-Server Problem (16)

Frage von montylein1981 zum Thema Windows Server ...

Cloud-Dienste
gelöst Bitcoins minen über Nacht? (16)

Frage von 1410640014 zum Thema Cloud-Dienste ...