![]() |
![]() |
|
![]() |
![]() |
|
Programmierung Rat & Tat für Programmierer |
![]() |
|
Themen-Optionen | Ansicht |
![]() |
#1 |
Inventar
![]() Registriert seit: 20.04.2000
Beiträge: 1.616
|
![]() Hallo Alle,
Ich habe einen kleinen Batch geschrieben, den ich jetzt auf einem anderen System einsetzen möchte. Natürlich sind dort alle Pfade anders, also hab ich mir überlegt den Batch ein bißchen umzuschreiben um seine Portabilität zu erhöhen. Ich hab zunächst daran gedacht zu Beginn des Batches alle Pfade als Variablen zu definieren. (Ein Hauptverzeichnis und mehrere Unterverzeichnisse darin) bzw. müßte ich nur das Hauptverzeichnis als Variable einsetzen, da die Unterverzeichnisse ja immer gleich bleiben. Somit müßte ich auf jedem anderen System nur noch das Hauptverzeichnis editieren und dann läuft der Batch auch dort. (Sehr cool wäre wenn ich die Pfade aus einer Textdatei extrahieren könnte. Dann wäre das Ändern überhaupt noch leichter!) Einziges Problem ist: ich hab keine Ahnung wie das geht... ![]() Vielen Dank für Eure Hilfe & lg, revell
____________________________________
IF käse = löcher mehr käse = mehr löcher mehr löcher = weniger käse THEN weniger käse = mehr käse Signatur verwirrt... |
![]() |
![]() |
![]() |
#3 |
Inventar
![]() Registriert seit: 20.04.2000
Beiträge: 1.616
|
![]() ???
____________________________________
IF käse = löcher mehr käse = mehr löcher mehr löcher = weniger käse THEN weniger käse = mehr käse Signatur verwirrt... |
![]() |
![]() |
![]() |
#5 |
Inventar
![]() Registriert seit: 20.04.2000
Beiträge: 1.616
|
![]() Also tut mir echt leid, aber ich versteh immer noch nicht wirklich, was ich nun machen muss um in einem batch unter WinXP (!) einem Pfad eine Variable zuzuweisen und diese dann wieder bei Badarf aufzurufen.
![]()
____________________________________
IF käse = löcher mehr käse = mehr löcher mehr löcher = weniger käse THEN weniger käse = mehr käse Signatur verwirrt... |
![]() |
![]() |
![]() |
#6 |
Inventar
![]() |
![]() Du kannst eiem Batch auch Parameter übergeben.
z.B. meinbatch.bat "c:\mein Verzeichnis\Daten" Im batch kannst Du dann z.B. in dieses Verzeichnis wechseln, wenn Du "cd %1%" eingbist, %1% steht als Platzhalter für die erste Variable nach dem Befehl. Weitere Parameter definieren geht mit z.B.: set bilder=%1%\Bilder Die Variable "Bilder" enthält dann den Wert "c:\mein Verzeichnis\Daten\Bilder". Verwenden kann man die Variable wieder mit z.B.: cd %Bilder% Ich würde der Batch-Datei aber die Werweiterung ".cmd" geben, d.h. diese wird mit dem NT Kommandoprozessor CMD.exe ausgeführt, welcher einige Funktionen mehr bietet als der Prozessor comand.com.
____________________________________
Bei Problemen zwei Griffe ranschweißen und aus dem Fenster ..... |
![]() |
![]() |
![]() |
#7 |
Inventar
![]() Registriert seit: 20.04.2000
Beiträge: 1.616
|
![]() Ich verstehe noch nicht ganz wie du zunächst auf %1% kommst; also dieses definierst? Der Rest ist klar. Danke!
____________________________________
IF käse = löcher mehr käse = mehr löcher mehr löcher = weniger käse THEN weniger käse = mehr käse Signatur verwirrt... |
![]() |
![]() |
![]() |
#8 |
Inventar
![]() |
![]() Der Parameter, der hinter dem Aufruf der Batch steht, wird zur Laufzeit in die Variable %1% übernommen.
Geht auch so weiter: Wenn z.B. Meinbatch.cmd Parameter1 Parameter2 Parameter3 Parameter4 aufgerufen wird, dann hat zur Laufzeit des Batch %1%=Parameter1 %2%=Parameter2 %3%=Parameter3 %4%=Parameter4 Wenn ein Parameter Leerzeichen (wie z.B. ein Verzeichnis) enthält, dann muss dieser in Anführungszeichen gesetzt werden. Mach Dir mal ein Batch, wo Du folgendes reinschreibst: @echo off echo %1% echo. echo. echo %2% Ruf dann den bacht so auf: test.cmd "Zeile mit Parameter 1" "Zeile mit Parameter 2" Und dann siehst Du das Ergebnis
____________________________________
Bei Problemen zwei Griffe ranschweißen und aus dem Fenster ..... |
![]() |
![]() |
![]() |
#9 |
Inventar
![]() Registriert seit: 20.04.2000
Beiträge: 1.616
|
![]() Danke schön!
____________________________________
IF käse = löcher mehr käse = mehr löcher mehr löcher = weniger käse THEN weniger käse = mehr käse Signatur verwirrt... |
![]() |
![]() |
![]() |
#10 |
Inventar
![]() Registriert seit: 20.04.2000
Beiträge: 1.616
|
![]() Also, soweit scheint alles zu funktionieren. Auch wenn ich mit dem testen noch nicht ganz fertig bin.
ABER: gibts eine Möglichkeit den Wert einer Variablen aus einer anderen Datei auszulesen und wenn ja welchen? Dann könnte ich in einer Textdatei alle Variablen definieren und einfach ändern, ohne den eigentlichen Batch modifizieren zu müssen.
____________________________________
IF käse = löcher mehr käse = mehr löcher mehr löcher = weniger käse THEN weniger käse = mehr käse Signatur verwirrt... |
![]() |
![]() |
![]() |
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1) | |
|
|