Combine todas as linhas de um arquivo de texto em uma única linha através da linha de comando do Windows

1

Eu escrevi um script de linha de comando que faz uma lista de arquivos que eu quero fazer coisas, como compactar, excluir ou enviar e-mail. A lista estaria no seguinte formato:

7z-Compression-List.txt:
========================

file1
file2
file3
etc...

Para compactação, quero combinar todas as linhas da lista em uma única linha. assim:

arquivo1, arquivo2, arquivo3, etc

para que eu possa alimentar todos os arquivos no aplicativo de linha de comando 7z ao mesmo tempo.

Alguém saberia como eu posso fazer isso? Talvez um loop de algum tipo?

    
por thebunnyrules 28.04.2017 / 20:34

2 respostas

2

Acabei encontrando a resposta em outra pergunta, aqui no Stack Overflow

@ECHO OFF
setlocal
(SET file-list=)
FOR /f "delims=" %%x IN (7z-Compression-List.txt) DO (
CALL SET file-list=%%file-list%%, %%x
)
SET file-list=%file-list:~1%
ECHO file-list=%file-list%

Funcionou lindamente. Esta é uma cópia modificada da resposta de Magoo , então sinta-se à vontade para inventar o autor original se você gostar desta resposta.

    
por 28.04.2017 / 21:27
0

Com base neste wiki da comunidade :

@echo off
for /f "tokens=* delims=" %%a in ('type 7z-Compression-List.txt') do (
<nul set /p Test=%%a, 
)

No entanto, deixa um extra "," no final da linha.

    
por 28.04.2017 / 21:16