enviar la salida del archivo por lotes al directorio actual

enviar la salida del archivo por lotes al directorio actual

Tengo un .batscript que combina algunos archivos de texto en un archivo grande. Me gustaría que el archivo resultante vaya al directorio actual en lugar de a la ruta codificada.

Aquí está mi guión:

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

Tengo esto guardado en la carpeta "Enviar a", por lo que puedo seleccionar un montón de archivos en el DirectorioA, hacer clic derecho y "enviar a" mi secuencia de comandos por lotes. Esto funciona, pero quiero que bigfile.txt esté en el mismo directorio que todos los archivos pequeños. ¿Ideas?

Respuesta1

@echo off
    setlocal enableextensions disabledelayedexpansion

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

    shift
    goto loop

Agregue la salida a un archivo ( bigfile.txt) en la misma unidad y ruta que el archivo fuente

Respuesta2

que se puede lograr reemplazando

%cd%\bigfile.txt

con

%cd:~0,2%%~p1

obtiene la cadena de la ruta hasta el directorio principal (con la unidad especificada)

información relacionada