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 TYPE
comando 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.txt
arquivo 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 cmd
janela:
>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 for
variáveis internas do loop (ou seja %%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):
- (referência de comando)Um índice AZ da linha de comando do Windows CMD
- (particularidades adicionais)Sintaxe de linha de comando do shell CMD do Windows
- (
%G
etc. página especial)Argumentos de linha de comando (parâmetros) - (
>
página especial)Redirecionamento
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 /l
comando conta de 1 a 3 em incrementos. Em geral (start,increment,end)
.