Ich habe ein .bat
Skript, 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).