Verzeichnis mehrerer Batchdateien, die mit CALL aufgerufen werden anpassen
Ich möchte mehrere (zu viele) Batchdateien per Call-Befehl aufrufen.
Dabei entsteht ein Problem: Die Zuordnung des Verzeichnisses.
Ich habe in mehreren Unterverzeichnissen mehrere Batchdateien.
Jede erzeugt mir eine Datei mit mehreren Befehlszeilen:
Wenn ich diese Batchdateien per Call-Befehl aufrufe werden alle %newfile% in dem Verzeichnis der aufrufenden Batchdatei erzeugt.
Die %newfile% soll aber jeweils in dem Verzeichis der aufgerufenen(!) Batchdatei erstellt werden!
Muß ich jetzt jede Batchdatei ändern oder geht das eleganter?
Außerdem wäre es möglich, daß sich später die Verzeichnisnamen der Batchdateien ändern.
PS: Winterreifen aufziehen nicht vergessen!
Geht leider nicht per Batch. :-?
(Wer diesen Beitrag später liest muß ggf. die Reifenauswahl anpassen.)
Dabei entsteht ein Problem: Die Zuordnung des Verzeichnisses.
Ich habe in mehreren Unterverzeichnissen mehrere Batchdateien.
Jede erzeugt mir eine Datei mit mehreren Befehlszeilen:
SET newfile=neueDatei.ext ... TYPE Pfad_cfg\Config.ext > %newfile% TYPE Pfad1\Datei_A.ext >> %newfile% TYPE Pfad2\Datei_B.ext >> %newfile% ... TYPE Pfadn\Datei_X.ext >> %newfile%
Wenn ich diese Batchdateien per Call-Befehl aufrufe werden alle %newfile% in dem Verzeichnis der aufrufenden Batchdatei erzeugt.
Die %newfile% soll aber jeweils in dem Verzeichis der aufgerufenen(!) Batchdatei erstellt werden!
Muß ich jetzt jede Batchdatei ändern oder geht das eleganter?
Außerdem wäre es möglich, daß sich später die Verzeichnisnamen der Batchdateien ändern.
PS: Winterreifen aufziehen nicht vergessen!
Geht leider nicht per Batch. :-?
(Wer diesen Beitrag später liest muß ggf. die Reifenauswahl anpassen.)
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 128398
Url: https://administrator.de/forum/verzeichnis-mehrerer-batchdateien-die-mit-call-aufgerufen-werden-anpassen-128398.html
Ausgedruckt am: 04.04.2025 um 23:04 Uhr
5 Kommentare
Neuester Kommentar
Hallo SG3105 und willkommen im Forum!
So richtig klar ist mir Dein Problem noch nicht geworden, aber den Speicherort der aufgerufenen Batchdatei zu verwenden sollte so realisierbar sein:
Mehr Information dazu findest Du in der Hilfe zu "
Eine Alternative könnte der Verzeichniswechsel vor dem Aufruf der jeweiligen Batchdatei (innerhalb des aufrufenden Batches) sein - siehe dazu "
Grüße
bastla
P.S.: Für das Posten von Code bietet die Forumssoftware passende ...
So richtig klar ist mir Dein Problem noch nicht geworden, aber den Speicherort der aufgerufenen Batchdatei zu verwenden sollte so realisierbar sein:
SET "newfile=%~dp0neueDatei.ext"
for
" ziemlich gegen Ende (Stichwort: "Ersetzung von Verweisen") - was dort für die Laufvariable einer "for
"-Schleife (%I
) dargestellt wird, gilt auch für die Parametervariablen %0
bis %9
.Eine Alternative könnte der Verzeichniswechsel vor dem Aufruf der jeweiligen Batchdatei (innerhalb des aufrufenden Batches) sein - siehe dazu "
pushd
" und "popd
".Grüße
bastla
P.S.: Für das Posten von Code bietet die Forumssoftware passende ...
Hallo SG3105.
Das ist ein anderer Variablentyp.
Hier mal der Unterschied:
Grüße
rubberman
Das ist ein anderer Variablentyp.
Hier mal der Unterschied:
@echo off &setlocal
set irgendwas="Inhalt in """
echo Das Original:
echo %irgendwas%
echo.
echo Alle Anfuehrungszeichen werden durch NICHTS ersetzt:
echo %irgendwas:"=%
echo.
echo Nur die umschliessenden Anfuehrungszeichen werden eliminiert:
for /f "delims=" %%i in ("%irgendwas%") do echo %%~i
echo.
pause
Grüße
rubberman
Hallo SG3105,
um ehrlich zu sein, hab noch nie versucht ein Bild hier einzufügen, also keine Ahnung.
Hilfreicher als der Screenshot wäre aber gewesen, den genauen Code zu posten, der die Fehlermeldung ausspuckt. Aber mal so als Tipp:
Die Ausgabe ist:
C:\Neu.txt
dagegen:
Hier wird entweder der Inhalt der Datei C:\Neu.txt ausgegeben, oder die Datei ist nicht vorhanden und führt zu der von dir geposteten Fehlermeldung.
Grüße
rubberman
Edit: Der Fehlerteufel hatte zugeschlagen.
um ehrlich zu sein, hab noch nie versucht ein Bild hier einzufügen, also keine Ahnung.
Hilfreicher als der Screenshot wäre aber gewesen, den genauen Code zu posten, der die Fehlermeldung ausspuckt. Aber mal so als Tipp:
@echo off
set irgendwas=C:\Neu.txt
for /f "delims=" %%i in ("%irgendwas%") do echo %%i
pause
C:\Neu.txt
dagegen:
@echo off
set irgendwas=C:\Neu.txt
for /f "delims=" %%i in (%irgendwas%) do echo %%i
pause
Grüße
rubberman
Edit: Der Fehlerteufel hatte zugeschlagen.