Sendet die Ausgabe der Batchdatei an das aktuelle Verzeichnis.

Sendet die Ausgabe der Batchdatei an das aktuelle Verzeichnis.

Ich habe ein .batSkript, das mehrere Textdateien zu einer großen Datei zusammenfügt. Ich möchte, dass die resultierende Datei in das aktuelle Verzeichnis und nicht in den fest codierten Pfad verschoben wird.

Hier ist mein Skript:

@echo off
:loop
if ($1) == () goto end
more +9 %1% >> %cd%\bigfile.txt
shift
goto loop
:end

Ich habe dies im Ordner „Senden an“ gespeichert, sodass ich eine Reihe von Dateien in Verzeichnis A auswählen und mit der rechten Maustaste klicken und „Senden an“ mein Batch-Skript wählen kann. Das funktioniert, aber ich möchte, dass bigfile.txt im selben Verzeichnis wie alle kleinen Dateien liegt. Ideen?

Antwort1

@echo off
    setlocal enableextensions disabledelayedexpansion

:loop
    if "%~1"=="" goto :eof
    more +9 "%~1" >> "%~dp1bigfile.txt"

    shift
    goto loop

Hängen Sie die Ausgabe an eine Datei ( bigfile.txt) im selben Laufwerk und Pfad wie die Quelldatei an.

Antwort2

Dies kann erreicht werden durch den Ersatz

%cd%\bigfile.txt

mit

%cd:~0,2%%~p1

Es wird der String mit dem Pfad bis zum übergeordneten Verzeichnis abgerufen (mit Angabe des Laufwerks).

verwandte Informationen