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, 10204 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 ..
Ähnliche Inhalte
Batch & Shell
gelöst Mehrzeiligen Powershell-Befehl mit Batch ausführen (3)

Frage von 133202 zum Thema Batch & Shell ...

Batch & Shell
gelöst EQU - GLEICH - BATCH (9)

Frage von freshman2017 zum Thema Batch & Shell ...

Batch & Shell
gelöst Windows 10 Batch für Datum und Uhrzeit setzen (18)

Frage von zeroblue2005 zum Thema Batch & Shell ...

Neue Wissensbeiträge
Windows 10

Windows 8.x oder 10 Lizenz-Key aus dem ROM auslesen mit Linux

(6)

Tipp von Lochkartenstanzer zum Thema Windows 10 ...

Tipps & Tricks

Wie Hackt man sich am besten in ein Computernetzwerk ein

(38)

Erfahrungsbericht von Herbrich19 zum Thema Tipps & Tricks ...

Heiß diskutierte Inhalte
Festplatten, SSD, Raid
POS Hardware und alternativen zu Raid 1? (21)

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

Windows 10
gelöst Windows 10 Home "Netzlaufwerk nicht bereit" (19)

Frage von Oggy01 zum Thema Windows 10 ...

Viren und Trojaner
Verschlüsselungstrojaner simulieren (18)

Frage von AlbertMinrich zum Thema Viren und Trojaner ...

Exchange Server
Exchange Postfach leeren - nicht löschen (11)

Frage von AndreasOC zum Thema Exchange Server ...