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

0

Eu tenho um script .bat que agrupa alguns arquivos de texto em um arquivo grande. Eu gostaria de ter o arquivo resultante ir para o diretório atual em vez do caminho codificado.

Aqui está o meu script:

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

Eu tenho isso salvo na pasta "Enviar para", para que eu possa selecionar um monte de arquivos no DirectoryA, e clique com o botão direito e "enviar para" o meu script em lote. Isso funciona, mas eu quero bigfile.txt para estar no mesmo diretório que todos os pequenos arquivos. Idéias?

    
por hoosierEE 27.10.2014 / 22:23

2 respostas

1
@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 que o arquivo de origem

    
por 28.10.2014 / 13:26
0

que pode ser alcançado substituindo

%cd%\bigfile.txt

com

%cd:~0,2%%~p1

ele obtém a string para o caminho até o diretório pai (com o drive especificado)

    
por 28.10.2014 / 01:09