envia a saída do arquivo em lote para o diretório atual

envia a saída do arquivo em lote para o diretório atual

Eu tenho um .batscript que reúne alguns arquivos de texto em um arquivo grande. Gostaria que o arquivo resultante fosse para o diretório atual em vez do caminho codificado.

Aqui está meu roteiro:

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

Eu salvei isso na pasta "Enviar para", para poder selecionar vários arquivos no DiretórioA, clicar com o botão direito e "enviar para" meu script em lote. Isso funciona, mas quero que bigfile.txt esteja no mesmo diretório que todos os pequenos arquivos. Ideias?

Responder1

@echo off
    setlocal enableextensions disabledelayedexpansion

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

    shift
    goto loop

Anexe a saída a um arquivo ( bigfile.txt) na mesma unidade e caminho do arquivo de origem

Responder2

que pode ser alcançado substituindo

%cd%\bigfile.txt

com

%cd:~0,2%%~p1

obtém a string para o caminho até o diretório pai (com a unidade especificada)

informação relacionada