Eu tenho um .bat
script 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)