CMD kullanarak Birden Çok Dosyayı Birleştirme


-3

Dizinde bol miktarda * .cpp dosyası var. Çevrimiçi sitelerden birinden aldığım aşağıdaki komutu kullanarak dosyayı başarıyla birleştirdim.

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

Şimdi tüm .cpp dosyalarımın içeriğini içeren bir dosya (Merged.doc) var. Birleştirme sırasında her .cpp'in sonuna boş sayfa eklemek istiyorum veya Birleştirilmiş dosyadaki farklı sayfalarda her .cpp dosyalarının olmasını istiyorum.

Aşağıdaki komut olarak ( başka bir sorudan ). Benzer bir komut var mı:

type *.cpp > merged.doc

İşte her dosya böyle bir yeni satırdan sonra başlar, yeni bir sayfadan başlamalıdır.

DÜZENLE

Her programdan önce dört satırlık bir metin eklemem gerekirse ne olur? Diyelim ki her bir dosyayla ilişkilendirilmiş Tarih satırında Tarih eklemek istersem: DD-MM-YYYY ne yapmalıyım ve ayrıca Dosya Adı ile dosya adını eklemek için ne yapmalıyım: abcd.cpp (istemiyorum) onun .cpp).

Bu komutlarda yeniyim, lütfen afedersiniz. Bu soru için neden bir oy kullandım bilmiyorum.

Ben ne yaptım :

 @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

Sonuç dosyasında HATA

#İnclude'den sonra veya veya yoktur. Ama orjinal program dosyamda hepsi mevcut. O programın tamamı yok, her programın sadece yarısı sonuç dosyasında. Toplu dosyada sorun nedir?


Bu gerçekten topal. Cevap, metin dosyalarının artık sayfa kesmelerini desteklememesidir çünkü yazıcılar artık /bçıkış kodlarını desteklememektedir . Gerçek çalışma sayfası sonları almak istiyorsanız, bunu başka bir şeye dönüştürmeniz gerekir. Bunu yazdırmak istiyorsanız html öneririm. Sayfa sonlarını tek başına biçimlendirme için istiyorsan, o zaman yapılamaz çünkü neredeyse hiçbir metin editörü bu kaçış kodunu desteklememektedir (bu, bir kez daha yazdırırken işe yaramaz olması nedeniyle).
krowe

Satırları sayabilirsiniz, ancak bu yalnızca belirli bir yazı tipi ve yazı tipi boyutu için işe yarar. Bunu bize vermediniz ve yapsanız bile, sizin için bir acılar olacak. Bunu yapmak istiyorsanız, o zaman buraya gidin: stackoverflow.com/questions/5664761/…
krowe 7:15

Dosyamı herhangi bir türe dönüştürmeye hazırım, ancak her şeyden sonra .doc veya .rtf dosyasına dönüştürebilmeliyim.
Kod

@manutd Lütfen bir sorunuzun ardından yeni gereksinimler eklemek için lütfen sorunuzu değiştirmeye devam etmeyin. Başka bir sorunuz varsa, lütfen Soru Sor düğmesini tıklayarak sorun .
DavidPostill

Yanıtlar:


0

Bu hile yapmak gerekir:

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

Bu bir toplu iş dosyasından çalıştırılmak üzere yazılmıştır. Her seferinde onunla yazarsanız, zamanınızı boşa harcıyorsunuz demektir. 100’ü istediğiniz sayıda iade ile değiştirin.

Güncelleme

HTML iyi ise, bunu kullanın:

@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

Güncelleme 2

Bunu Word'e doğru bir şekilde almak istiyorsanız (Acrobat'ın pro sürümünü satın almadan), ardından belgeyi bir pdf dosyasına yazdırmak istiyorsunuz . Sonra Word'deki o pdf dosyasını açın (tıpkı bir *.docdosyayı açmanız gibi ). Word, tam olarak açıkladığım gibi yapıldığında doğru şekilde gizleyecektir (siz açtıktan sonra dönüşümle devam etmek istediğiniz hava durumunu soran bir mesaj kutusu görmelisiniz).

Her kaynak dosyaya 4 satır metin eklemeye ilişkin sorunuz ve size gösterdiklerinizden hiçbir şey öğrenemediğinizi gösteriyor. Cevabımın ilk bölümüne tekrar bakın ve bunun nasıl yapılacağına dair iyi bir tahminde bulunun.


Her program arasında tam olarak bir sayfa olabilir mi? Bir program ortada bitiyorsa veya bir sayfanın herhangi bir yerinde bitiyorsa, bir sonraki dosya boş bir sayfadan sonra başlar.
Kod

@manutd Güncellememe bakın.
krowe

İşe yaramadı. Yeni bir html dosyası oluşturdu, ancak yeni sayfa oluşturmadı.
Kod

@ manutd FYI, OP'nin sadece bir cevap kabul etmekle kalmayıp, aynı zamanda iyi bir girişimde bulunan tüm cevapları yükseltmesi de geleneksel bir yöntemdir. Ayrıca, işe yaradı. Baskı önizleme iletişim kutusunda sadece şuna bakın. İstediğiniz gibi yazdıracak.
krowe

İşe yaradı . Şimdi bu dosyayı .doc'ye dönüştürmem gerekiyor, her program yeni sayfada olacak.
CodeIt
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.