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, 10159 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
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Batch & Shell
Batch zum bearbeiten mehrerer CSV (3)

Frage von Matzus87 zum Thema Batch & Shell ...

Batch & Shell
Batch-Variable nach Stichworten aus TXT Datei durchsuchen (3)

Frage von Markus5579 zum Thema Batch & Shell ...

Batch & Shell
Dateinamen nach Zeichnen abschneiden - Batch-Shell (9)

Frage von cberndt zum Thema Batch & Shell ...

Batch & Shell
CMD Verschlüsslung ( Batch ) (11)

Frage von clragon zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (21)

Frage von Xaero1982 zum Thema Microsoft ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...

Windows Update
Treiberinstallation durch Windows Update läßt sich nicht verhindern (17)

Frage von liquidbase zum Thema Windows Update ...