Hallo zusammen,
ich führe derzeitig auf Rund 20 Servern verschiedene tätigkeiten duruch, die sich automatisieren lassen. copieren, löschen, zippen, dienste stoppen und starten.
das ganze würde ich gerne in einem batch file umsetzen, dazu muss ich aber, je nachdem auf welchem server ich gerade bin, andere tätigkeiten machen!
meine idee: paramter!
also ich rufe das script auf:
> batch.bat -a -b -c
das ganze geht natürlich nur mit einer schleife das ist mir klar. grundlegend kann ich alle anderen operationen, nur die schleife fällt mir schwer, so das alle möglichen parameter überprüft werden und entsprechend durchgeführt werden.
hätte da jemand als beispiel eine kleine schleife für mich? danke im vorraus!
Seite 1 von 1
[batch] Parameterübegebende Umgebung
Anzeige
#2
geschrieben 08. Juli 2008 - 12:40
Erster Treffer bei Google "batch parameter":
http://www.its05.de/computerwissen-compute...beitung_s7.html
http://www.its05.de/computerwissen-compute...beitung_s7.html
insane in the membrane
#3 _Benji_
geschrieben 08. Juli 2008 - 14:05
@echo off if "%1"=="abc" goto abc if "%2"=="efg" goto efg if "%3"=="hij" goto hij :abc if exist abc.zip rm -f abc.zip mkdir abc zip -r abc.zip abc :efg if exist efg.zip rm -f efg.zip mkdir efg zip -r efg.zip efg :hij if exist hij.zip rm -f hij.zip mkdir hij zip -r hij.zip hij goto end :end
hmm das war meine erste idee ... leider klappt es so nicht ganz weil sobald test.bat aufgerufen wird, werden alle funktionen aufgerufen - nur warum?
server1 : test.bat abc hij
server2: test.bat efg abc
server3: test.bat abc efg hij
so würde ich das gerne haben wie an diesen 3 beispielen! ist sowas überhaupt noch möglich? - perl oder ähnliches kann ich auf grund der rechte nicht installieren und benutzen.
es müsste also beim batch bleiben!
#4
geschrieben 08. Juli 2008 - 15:03
Zitat
if "%1"=="abc" goto abc
if "%2"=="efg" goto efg
if "%3"=="hij" goto hij
if "%2"=="efg" goto efg
if "%3"=="hij" goto hij
%1, %2 usw sind keine Strings sondern Variablen. Darum lass die Anführungsstriche weg.
EDIT:
Dein Zweites Problem:
Was ist, wenn eine der Variablen nicht vorhanden ist. Auf der Webseite ist ein wunderbarer Beispielcode, den du quasi übernehmen kannst:
Das schreibste über deine eigenen if-Schleifen
if %1!==! goto quit if %2!==! goto quit if %3!==! goto quit
und ganz zum Schluss deines Scripts schreibst du:
:quit exit
Dieser Beitrag wurde von mush bearbeitet: 08. Juli 2008 - 15:05
insane in the membrane
#5
geschrieben 08. Juli 2008 - 17:44
Ich habe kurz ein Skript geschrieben, dass Parameter der Form -a -b -c annehmen kann:
Beispielaufruf:
Hier der Code von test.bat:
Unter den einzelnen :param_X kannst du nun andere Variablen setzen, um die später abzufragen, ob evtl. a gesetzt wurde oder b, usw. Der Trick an dem Skript ist SHIFT, das die Parameter um eins nach links verschiebt und den unteren "wegpopt".
Ich hoffe, das hilft weiter.
Gruß,
Stefan
Beispielaufruf:
test.bat -b -a -c
Hier der Code von test.bat:
@echo off :anfang IF "%1"=="" GOTO ende IF "%1"=="-a" GOTO param_a IF "%1"=="-b" GOTO param_b IF "%1"=="-c" GOTO param_c :next SHIFT IF NOT "%1"=="" GOTO anfang GOTO ende :param_a ECHO Parameter a wurde gesetzt. GOTO next :param_b ECHO Parameter b wurde gesetzt. GOTO next :param_c ECHO Parameter c wurde gesetzt. GOTO next :ende
Unter den einzelnen :param_X kannst du nun andere Variablen setzen, um die später abzufragen, ob evtl. a gesetzt wurde oder b, usw. Der Trick an dem Skript ist SHIFT, das die Parameter um eins nach links verschiebt und den unteren "wegpopt".
Ich hoffe, das hilft weiter.
Gruß,
Stefan
#6 _Benji_
geschrieben 09. Juli 2008 - 07:58
hey Diewie!
danke das sieht sehr gut aus, damit kann ich arbeiten! besten dank!
danke das sieht sehr gut aus, damit kann ich arbeiten! besten dank!
Thema verteilen:
Seite 1 von 1

Hilfe
Neues Thema
Antworten
Nach oben


