arquivo em lote do Windows com o comando TYPE

1

Eu tenho 10 arquivos como abaixo:

  • file1.txt (conteúdo do arquivo="eu tenho texto para o arquivo1")
  • file2.txt (conteúdo do arquivo="eu tenho texto para o arquivo2")
  • file3.txt (conteúdo do arquivo="eu tenho texto para o arquivo3")

e por isso

Estou tentando fazer um comando TYPE como:

type file*.txt > OUTPUT.txt

isso funciona para produzir apenas o conteúdo do arquivo. Eu preciso de saída para também ter nome de arquivo para cada arquivo.

meu arquivo output.txt deve ficar assim:

file1.txt = "i contain text for file1"
file2.txt = "i contain text for file2"
file3.txt = "i contain text for file3"
    
por Sathya 14.10.2015 / 21:31

3 respostas

1

Crie um arquivo de lote chamado proc.bat que contenha:

echo %1=>>output.txt
type %1>>output.txt

Em seguida, use este comando:

for %v in (file*.txt) do proc %v
    
por 14.10.2015 / 21:44
1

Use o próximo comando na janela cmd :

>output.txt (for /F "tokens=1* delims=:" %G in ('findstr "^" "file*.txt"') do @echo %G = "%H")

Se usado em um script em lote, sinais de porcentagem dupla em for variáveis internas de loop (por exemplo, %%G , %%H em vez de %G , %H respectivamente):

@echo off
>output.txt (for /F "tokens=1* delims=:" %%G in ('findstr "^" "file*.txt"') do echo %%G = "%%H")

Recursos (leitura obrigatória):

por 15.10.2015 / 09:06
0

Você pode tentar:

for /l %f in (1,1,3) do echo|set /p="File %f = " >> output.txt & type file%f.txt >> output.txt

Isso produzirá um arquivo com a seguinte aparência:

File 1 = Text in file1
File 2 = Text in file2
File 3 = Text in file3

O comando for /l conta de 1 a 3 em incrementos. Em geral (start,increment,end) .

    
por 14.10.2015 / 22:07