Dateinamen aus Batch übergeben?

  • Ersteller Ersteller reaper2k11
  • Erstellt am Erstellt am
R

reaper2k11

Gast
Hallo,
ich starte einen "call" aus einer Batch, welche auf eine andere Datei abzielt.
Grund: Auslagerung von Variablen, da sonst unübersichtlich.

zu startende Batch heißt z.B 'Spiegelung_logs.bat'. Kann ich hier mit einem speziellen cmd command den Dateinamen ermitteln, welcher gerade ausgeführt wird?

Denn so könnte ich in der zweiten Batch den command hinterlegen und es wäre wieder einen Tick übersichtlicher
 
Zweite batch mit Argument aufrufen

start.cmd hallo.cmd Test

in der zweiten cmd koennen die Argumente wie folgt abgefragt werden

ECHO %1 ist Argument 1
ECHO %2 ist Argument 2

Resultat in der Konsole:
start.cmd
Test
 
So ganz vertehe ich das nicht, was du willst.
Aber falls Du von Batch1 aus Batch2 aufrufst und babei einen Wert übrgeben willst
kannst du das per %1 für Parameter 1 in der Batch 2 abfragen.

Meinst Du das ?
 
Batch 1 (Dateiname=Spiegelung_test):
<Anweisungen für Spiegelung>

call Batch 2


Batch 2 (call_tasks_log):
set jahr=%date:~-4%
set monat=%date:~-7,2%
set tag=%date:~-10,2%
set stunde=%time:~-11,2%
set minute=%time:~-8,2%
set sekunde=%time:~-5,2%

set time=%jahr%-%monat%-%tag% %stunde%:%minute%

echo %time% %Dateiname_von_Batch_1% >>D:\TASKS_log\AUFGABENPLANUNG.LOG

Suchen tue ich quasi den Inhalt von %Dateiname_von_Batch_1%

Möchte meine Tasks nach Beendigung wohin schreiben, damit ich weiß was als letztes passiert ist. Klar könnte man in der Aufgabenplanung nachschauen, aber ich würde die Datei auf einer Freigabe abspeichern um nicht jedes mal via DRP auf den Server zu müssen.
 
Innerhalb von Batch-Dateien gibt es die Variablen 0 bis 9.
1-9 enthalten die übergebenen Parameter. (wie ja schon geschrieben)
0 ist der Aufruf der Batch selber.

bsp:
Datei test.bat mit Inhalt
Code:
echo %0
echo %1

Aufruf von call test Param1 gibt aus:
test
Param1

Aufruf mit call test.bat gibt aus:
test.bat
Param1


PS:
gib dem Call von Batch2 als Parameter %0 mit, dieser ist dann in Batch2 als %1 zu finden

also in etwa:
Code:
call Batch2 %0
...

Batch 2 (call_tasks_log):
Code:
...
echo %time% %1 >>D:\TASKS_log\AUFGABENPLANUNG.LOG


oder:

Code:
call Batch2 %0
...

Batch 2 (call_tasks_log):
Code:
set Dateiname_von_Batch_1=%1
...
echo %time% %Dateiname_von_Batch_1% >>D:\TASKS_log\AUFGABENPLANUNG.LOG
 
Zuletzt bearbeitet:
Zurück
Oben