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

Parameter einer Batchdatei aufschlüsseln

Frage Entwicklung Batch & Shell

Mitglied: Turrex0100

Turrex0100 (Level 1) - Jetzt verbinden

12.06.2012, aktualisiert 12:52 Uhr, 2248 Aufrufe, 2 Kommentare

Hallo Zusammen,

Ich komme mal direkt zu meiner Frage, also ich habe eine Batchdatei an die ich gerne parameter in der form
01.
batch.bat eins=1 zwei=2
übergeben würde...

Die anzahl der Parameter ist dabei aber immer unterschiedlich,

meine frage ist nun wie ich die parameter so aufteilen kann das ich nachher in der Batchdatei die Variablen nach dem schema:
01.
set "1_1=eins" 
02.
set "1_2=1" 
03.
 
04.
set "2_1=zwei" 
05.
set "2_2=2"
...usw

Für eure Hilfe wäre ich sehr dankbar,

Grüße Malte.
Mitglied: bastla
12.06.2012, aktualisiert um 13:21 Uhr
Hallo Turrex0100!

Grundsätzlich halte ich ja eher weniger davon, Variablen der Art "1_1" zu verwenden, aber das sollte sich im einfachsten Fall etwa so lösen lassen:
01.
@echo off & setlocal 
02.
set /a PNr=1 
03.
set /a WNr=1 
04.
for %%i in (%*) do call :ProcessParam %%i 
05.
:: ab hier Verarbeitung 
06.
:: 
07.
:: Ende Hauptprogramm 
08.
goto :eof 
09.
 
10.
:ProcessParam 
11.
echo "%~1"|findstr "=">nul && ( 
12.
    for /f "tokens=1* delims==" %%a in ("%~1") do ( 
13.
        set "%PNr%_1=%%~a" 
14.
        set "%PNr%_2=%%~b" 
15.
16.
    set /a PNr+=1 
17.
    set /a WNr=1 
18.
) || ( 
19.
    set "%PNr%_%WNr%=%~1" 
20.
    set /a WNr+=1 
21.
    if %WNr% geq 2 ( 
22.
        set /a PNr+=1 
23.
        set /a WNr=1 
24.
25.
26.
goto :eof
Die unterschiedliche Behandlung der einzelnen Parameter(teile) ist erforderlich, da "=" als Trennzeichen interpretiert wird, wenn nicht das "Parameter-Werte-Paar" unter Anführungszeichen übergeben wird ...

Grüße
bastla
Bitte warten ..
Mitglied: Turrex0100
12.06.2012 um 13:35 Uhr
Hallo Bastla,

Danke für die schnelle Hilfe!

Das Programm tut das was es soll, ich gebe dir recht das die bezeichnung der Variablen etwas unelegant ist,
da werde ich mir noch was feineres einfallen lassen ;)

Gruß Malte.
Bitte warten ..
Neuester Wissensbeitrag
Off Topic

"Ich habe nichts zu verbergen"

(2)

Erfahrungsbericht von FA-jka zum Thema Off Topic ...

Ähnliche Inhalte
Batch & Shell
gelöst Dateien aus einer Liste anhand verschiedener Parameter kopieren (6)

Frage von gnumpf21 zum Thema Batch & Shell ...

VB for Applications
Anpassungsdatei verschiedene Parameter (Hostname, SQL, Registry) ändern (3)

Frage von MiMa89 zum Thema VB for Applications ...

Batch & Shell
gelöst Ausgelagerte Variablen in Batchdatei (6)

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

Heiß diskutierte Inhalte
Linux Netzwerk
gelöst DHCP vergibt keine Adressen (31)

Frage von Maik82 zum Thema Linux Netzwerk ...

Exchange Server
gelöst Bestehende eMails autoamatisch weiterleiten (22)

Frage von metal-shot zum Thema Exchange Server ...

Apache Server
gelöst Lets Encrypt SSL mit Apache2 (20)

Frage von banane31 zum Thema Apache Server ...

Switche und Hubs
LAG zwischen SG300-Switches macht Probleme. Wer weiß Rat? (20)

Frage von White-Rabbit2 zum Thema Switche und Hubs ...