Supportnet / Forum / BS-Sonstige
Batch-Datei mit Parameterübergabe erstellen
Frage
Wie muss eine Batch-Datei aussehen die einen Paramter für Ausgangspfad und Zielpfad übergeben bekommt? (Ich möchte eine Datei z.B. hilfe.txt aus dem Ausgangspfad in den Zielpfad kopieren)
Antwort 1 von hendrikw
copy %1\hilfe.txt %2
Antwort 2 von _Tester_
Ok danke.
Ich habe aber mal gelesen das man auch %Targetdir% schreiben kann ist das richtig? Wie müsste ich die Batch dann aufrufen denn wenn ich nur statt %1 %sourcedir% schreibe passiert garnichts.
Ich habe aber mal gelesen das man auch %Targetdir% schreiben kann ist das richtig? Wie müsste ich die Batch dann aufrufen denn wenn ich nur statt %1 %sourcedir% schreibe passiert garnichts.
Antwort 3 von hendrikw
Mit %XYZ% verwendet man die Umgebungsvariable XYZ.
Die muss natürlich vorher gesetzt werden.
mfg
Hendrik
Die muss natürlich vorher gesetzt werden.
mfg
Hendrik
Antwort 4 von _Tester_
Aha? Wie müsste denn dann die Batch aussehen wenn ich ihr zwei Paramter übergeben möchte und diese
als %SOURCE% und %TARGET% in der Batch verwenden will?
als %SOURCE% und %TARGET% in der Batch verwenden will?
Antwort 5 von hendrikw
Wenn Du sowieso Parameter übergibst (%1, ...), macht es doch keinen Sinn, daraus erst Umgebungsvariablen zu machen und diese dann zu verwenden.
Aber wenns denn sein soll:
set SOURCE=%1
set TARGET=%2
copy %SOURCE%\hilfe.txt %TARGET%
mfg
Hendrik
Aber wenns denn sein soll:
set SOURCE=%1
set TARGET=%2
copy %SOURCE%\hilfe.txt %TARGET%
mfg
Hendrik
Antwort 6 von _Tester_
Vielen Dank! Also wenn ich das jetzt richtig verstanden habe ist es überhaupt nicht möglich
%Source% und %Target% zu verwenden ohne vorher denen %1 und %2 zugewiesen zu haben?
%Source% und %Target% zu verwenden ohne vorher denen %1 und %2 zugewiesen zu haben?
Antwort 7 von hendrikw
Es sei denn, Du setzt die Umgebungsvariablen vor Aufruf der Batch. Aber dann sind die Parameter überflüssig.
mfg
Hendrik
mfg
Hendrik
Antwort 8 von _Tester_
Achso funktioniert das! Jetzt verstehe ich auch warum in meiner Muster-Batch-Datei keine set-Zuweisungen vorhanden sind.
Nochmals Vielen Dank!!!!!
Nochmals Vielen Dank!!!!!
Antwort 9 von manei
Hallo,
ich glaube Ihr beide redet aneinander vorbei. _Tester_ scheint keine allzugroße Ahnung von Batchprogrammierung zu haben.
Er spricht zwar davon, daß Quell- und Zielpfad übergeben werden, sagt aber nichts darüber, wie diese übergeben werden oder werden sollen.
Wenn Du die Batch aufrufst z.B. mit:
Batchname C:\Windows C:\Windows\Desktop
kannst du in der Batch dann kopieren mit:
copy %1\hilfe.txt %2
in diesem Fall sind ja %1 und %2 Variable.
Wenn Du nur die Batch aufrufst, mußt Du natürlich in der Batch kopieren mit
copy C:\Windows\hilfe.txt C:\Windows\Desktop
dazu benötigst Du keine Variablen.
Willst Du unbedingt mit Variablen arbeiten, mußt du in der Batch zuerst den Pfad in Variable schreiben und kannst danach mit den Variablen kopieren (umständlich).
Nun stellt das System auch bestimmte Systemvariable zur Verfügung, z.B. zum Systemlaufwerk, zum Systemverzeichnis, zum Programmverzeichnis usw., ist je nach System unterschiedlich. Wenn Du die Eingabeaufforderung startest und hier einfach set eingibst, werden Dir diese Variablen mit dem dazugehörigen Pfad angezeigt. Willst du genau einen dieser Pfade ansprechen, kannst du diese dafür festgelegte Variable nutzen z.B. mit copy %windir%\hilfe.txt %windir%\Desktop.
MfG maneich
ich glaube Ihr beide redet aneinander vorbei. _Tester_ scheint keine allzugroße Ahnung von Batchprogrammierung zu haben.
Er spricht zwar davon, daß Quell- und Zielpfad übergeben werden, sagt aber nichts darüber, wie diese übergeben werden oder werden sollen.
Wenn Du die Batch aufrufst z.B. mit:
Batchname C:\Windows C:\Windows\Desktop
kannst du in der Batch dann kopieren mit:
copy %1\hilfe.txt %2
in diesem Fall sind ja %1 und %2 Variable.
Wenn Du nur die Batch aufrufst, mußt Du natürlich in der Batch kopieren mit
copy C:\Windows\hilfe.txt C:\Windows\Desktop
dazu benötigst Du keine Variablen.
Willst Du unbedingt mit Variablen arbeiten, mußt du in der Batch zuerst den Pfad in Variable schreiben und kannst danach mit den Variablen kopieren (umständlich).
Nun stellt das System auch bestimmte Systemvariable zur Verfügung, z.B. zum Systemlaufwerk, zum Systemverzeichnis, zum Programmverzeichnis usw., ist je nach System unterschiedlich. Wenn Du die Eingabeaufforderung startest und hier einfach set eingibst, werden Dir diese Variablen mit dem dazugehörigen Pfad angezeigt. Willst du genau einen dieser Pfade ansprechen, kannst du diese dafür festgelegte Variable nutzen z.B. mit copy %windir%\hilfe.txt %windir%\Desktop.
MfG maneich

