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

Verknüpfung mit Aufrufparametern zur Batch und diese dann in der Batch auswerten

Frage Entwicklung Batch & Shell

Mitglied: promis

promis (Level 1) - Jetzt verbinden

10.03.2006, aktualisiert 13.03.2006, 10177 Aufrufe, 3 Kommentare

Problembeschreibung:
Ich möchte eine Batch via Verknüpfung auf dem Desktop Starten.
In der Verknüpfung sollen Aufrufparameter mit angegeben werden können,
die in der aufgerufenen Batch ausgewertet werden sollen um den Ablauf der Batch zu steuern.

Beispielaufruf: c:\programm.cmd /user:admin /delete

Die Variable %1% in der Batch liefert nun "/user:admin",
%2% bringt "/delete" als Ergebnis.

So lange ich genau diese Reihenfolge in der Verknüpfung einhalte kann ich auch abfragen und vergleichen (if %1%==/delete do...).

Probleme habe ich aber, wenn ich die Parameter vertausche (c:\programm.cmd /delete /user:admin),
oder nur einen Parameter übergebe (c:\programm.cmd /delete)

Hat jemand eine Lösung um Aufrufparameter in Batchdateien elegant auszuwerten?
Mitglied: ITwissen
10.03.2006 um 17:11 Uhr
Mal abgesehn, dass ein Windows Batch fuer mich keine Programmiersprache ist fuer elegante Konstruktionen, gebe ich mal mein Senf dazu.

:loop
if (%1% ==irgendwas) do set irgendwas=%1%
if (%1%== irgendwasanderes) do set irgendwasanderes=%1%
...
shift
if (%1% == "") do goto ende
goto loop
:ende

Damit kannst du deine Optionen sortieren.
Bitte warten ..
Mitglied: Schirrmeister
10.03.2006 um 21:55 Uhr
Ich hab dir da mal was gebastelt, eine Überprüfung der Parameter fehlt natürlich noch.
Ich hoffe es ist selbsterklärend, ansonsten frag einfach nochmal.
01.
:: vim: ts=4 sw=4 nowrap 
02.
:: 
03.
:: Aufruf: 
04.
::     param_test.cmd /opt1 /opt2:value 
05.
:: 
06.
@echo off 
07.
 
08.
:GET_PARAM 
09.
 
10.
for /F "tokens=1,2 delims=:/" %%i in ( "%1" ) do ( 
11.
    call :%%i %%j 
12.
13.
 
14.
:: Nächsten Parameter nach %1 holen 
15.
shift 
16.
 
17.
:: Noch Parameter da? 
18.
if not "%1"=="" goto :GET_PARAM 
19.
 
20.
goto :EOF 
21.
 
22.
 
23.
:opt1 
24.
 
25.
:: Kein Parameter erwartet 
26.
set /A opt1=1 
27.
 
28.
echo %opt1% 
29.
 
30.
goto :EOF 
31.
 
32.
 
33.
:opt2 
34.
 
35.
:: Parameter erwartet 
36.
set opt2=%1 
37.
 
38.
echo %opt2% 
39.
 
40.
goto :EOF
Bitte warten ..
Mitglied: promis
13.03.2006 um 09:26 Uhr
Vielen Dank euch @ITwissen und @Schirrmeister

Ich habe beide Lösungsmöglichkeiten ausprobiert.
Der Code von Schirrmeister passte super zu meinem Problem und lief auf sofort.

Der thread kann geschlossen werden, es klappt einfach spitze.

Vielen Dank nochmals an euch beide
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 Batch: Textdatei Zeilenweise auslesen (2)

Frage von CreatorX zum Thema Batch & Shell ...

Batch & Shell
Verschachtelte For Schleife für Batch Neuling (3)

Frage von yperiu zum Thema Batch & Shell ...

Batch & Shell
gelöst Alle Ordner bis auf die letzten 3 per Batch löschen (5)

Frage von Stefan2733 zum Thema Batch & Shell ...

Batch & Shell
gelöst Fenstertitel von anderen Tasks per batch auslesen (3)

Frage von NetMare zum Thema Batch & Shell ...

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

Frage von Maik82 zum Thema Linux Netzwerk ...

CPU, RAM, Mainboards
Kaufberatung für mind. 8 verschiedene HighEnd-Mainboards (20)

Frage von yperiu zum Thema CPU, RAM, Mainboards ...

Hardware
gelöst PCI-Express-Adapterfrage (14)

Frage von DerWoWusste zum Thema Hardware ...

Mac OS X
Mac kann nicht im LAN pingen alle anderen schon (14)

Frage von smartino zum Thema Mac OS X ...