Arquivo em lote do Windows com comando TYPE

Arquivo em lote do Windows com comando TYPE

Eu tenho 10 arquivos como abaixo:

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

e assim


Estou tentando fazer um TYPEcomando como:

type file*.txt > OUTPUT.txt

isso funciona apenas para gerar o conteúdo do arquivo. eu preciso que a saída também tenha um nome de arquivo para cada arquivo.

meu output.txtarquivo deve ficar assim:

file1.txt = "i contain text for file1"
file2.txt = "i contain text for file2"
file3.txt = "i contain text for file3"

Responder1

Crie um arquivo em lote chamado proc.bat que contém:

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

Então use este comando:

for %v in (file*.txt) do proc %v

Responder2

Use o próximo comando da cmdjanela:

>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 duplos nas forvariáveis ​​internas do loop (ou seja %%G, %%Hem vez de %G, %Hrespectivamente):

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

Recursos(leitura obrigatória):

Responder3

Podes 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 semelhante a:

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

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

informação relacionada