Mesclar vários arquivos usando o CMD


-3

Eu tenho muitos arquivos * .cpp no ​​meu diretório. Eu fundei com sucesso o arquivo usando o comando abaixo que obtive de um dos sites online.

for %f in (*.cpp) do type "%f" >> Merged.doc 

Agora eu tenho um arquivo (Merged.doc) com o conteúdo de todos os meus arquivos .cpp. Eu quero adicionar uma página em branco no final de cada .cpp durante a mesclagem ou gostaria de ter cada arquivo .cpp em diferentes páginas no arquivo mesclado.

Como o comando abaixo (de outra pergunta ). Existe algum comando semelhante a:

type *.cpp > merged.doc

Aqui cada arquivo começa depois de uma nova linha como esta, deve começar em uma nova página.

EDITAR

E se eu precisar adicionar quatro linhas de texto antes de cada programa? Suponha que se eu quiser adicionar a data associada a cada arquivo na linha Data: DD-MM-AAAA o que devo fazer e também o que devo fazer para adicionar o nome do arquivo com File Name: abcd.cpp (não quero sua .cpp).

Sou novo nesse comando, então, por favor, me desculpe. Eu não sei porque eu tenho um voto para esta questão.

O que eu fiz :

 @echo off
 cd C:\programs
 echo ^<html^>^<head^>^<style^> pre {page-break-after: always;} ^</style^>^</head^>^<body^>      >merged.html
 for /r %%f in (*.cpp) do (
 echo ^<pre^>
 echo File Name        :(Here i want the date associated with each file without the extension .cpp) 
 echo File Description :
 echo Author           :Name
 echo Date             :(Here the date associated with each program)
 echo.
 type "%%f"
 echo ^</pre^>
 ) >>merged.html
 echo ^</body^>^</html^> >> merged.html

ERRO no arquivo resultante

Depois #include não existe ou ou ou. Mas com o meu arquivo de programa original está tudo disponível.Eu não tenho todo o programa apenas a metade de cada programa está no arquivo resultante.Qual é o problema com o arquivo de lote?


Isso é muito ruim. A resposta é que o arquivo de texto não suporta mais quebras de página porque as impressoras não suportam mais os /bcódigos de escape. Se você quiser ter quebras de página de trabalho reais, precisará converter isso em outra coisa. Gostaria de sugerir html se você quiser imprimir isso. Se você quiser quebras de página para formatação sozinha, então isso não pode ser feito porque quase nenhum editor de texto suporta mais esse código de escape (o que mais uma vez é porque é inútil ao imprimir mesmo assim).
2015

Você pode contar linhas, mas isso só funcionará para uma fonte e um tamanho de fonte específicos. Você não nos deu isso e mesmo se você fez isso seria uma dor para descobrir por você. Se você quisesse fazer isso, então basta ir aqui: stackoverflow.com/questions/5664761/…
krowe

Eu estou pronto para converter meu arquivo para qualquer tipo, mas depois de tudo eu deveria ser capaz de convertê-lo em arquivo .doc ou .rtf.
CodeIt

@manutd Por favor, não fique mudando sua pergunta para adicionar novos requisitos depois que você já tiver uma resposta. Se você tiver outra pergunta, por favor, pergunte clicando no botão Perguntar .
DavidPostill

Respostas:


0

Isso deve fazer o truque:

@echo off
break>merged.cpp
for /r %%f in (*.cpp) do (
    type "%%f"
    for /l %%x in (1, 1, 100) do echo.
) >> merged.cpp

Isto é escrito para ser executado a partir de um arquivo de lote. Se você está digitando o seu fora cada vez, então você está perdendo seu tempo. Altere os 100 para qualquer número de devoluções desejado.

Atualizar

Se o HTML estiver bem, use isto:

@echo off
cd C:\test
echo ^<html^>^<head^>^<style^> pre {page-break-after: always;} ^</style^>^</head^>^<body^> >merged.html
for /r %%f in (*.txt) do (
    echo ^<pre^>
    echo See, this is easy!
    echo File Name: %%f
    echo Author: The Dude
    echo.
    type "%%f"
    echo ^</pre^>
) >> merged.html
echo ^</body^>^</html^> >> merged.html

Atualização 2

Se você deseja colocar isso no Word corretamente (sem comprar a versão pro do Acrobat), basta imprimir o documento em um arquivo pdf . Em seguida, abra o arquivo pdf no Word (assim como você abriria um *.docarquivo). O Word irá convertê-lo corretamente somente se feito exatamente como eu expliquei (você deve ver uma caixa de mensagem pedindo tempo que você deseja continuar com a conversão depois de clicar em abrir).

Ah, e sua pergunta sobre adicionar 4 linhas de texto antes de cada arquivo de origem mostra que você não aprendeu nada do que eu mostrei para você. Olhe para a primeira parte da minha resposta novamente e adivinhe como isso seria feito.


Podemos ter exatamente uma página entre cada programa? Isto é, se um programa termina no meio ou em qualquer posição de uma página, o próximo arquivo começa depois de uma página em branco. Eu editei minha pergunta, por favor, verifique.
CodeIt

@manutd Veja minha atualização.
krowe

Não funcionou. Apenas criou um arquivo html mas nenhuma nova página.
CodeIt

@manutd FYI, é habitual que o OP aceite não apenas uma resposta, mas também evite todas as respostas que façam uma boa tentativa. Além disso, funcionou. Basta olhar para isso na caixa de diálogo de visualização da impressão. Vai imprimir como você pediu.
krowe

Funcionou . Agora eu preciso converter esse arquivo em. Doc vou obter cada programa em nova página.
CodeIt
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.