![]() |
Pfad als Variable in batch
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... :rolleyes: Vielen Dank für Eure Hilfe & lg, revell |
Übergib es einfach als Argument in der Kommandozeile:
Code:
kommando.script /var/www Code:
echo %1/html/dummy.txt |
???
|
Zitat:
Das ist unter LINUX allerdings $1. Und für Windows müssen die Pfade natürlich anders lauten: C:\\ordner1\ordner2 |
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. :(
|
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. |
Ich verstehe noch nicht ganz wie du zunächst auf %1% kommst; also dieses definierst? Der Rest ist klar. Danke!
|
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 |
Danke schön!
|
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. |
Alle Zeitangaben in WEZ +2. Es ist jetzt 05:04 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag