Bir metin dosyasına yazmak için toplu iş dosyasını nasıl kullanabilirim?


192

Toplu iş dosyasıyla aynı dizindeki bir metin dosyasına bir satır metin yazabilen bir komut dosyası yapmam gerekiyor.

Yanıtlar:


309

echoÇıktıyı bir metin dosyasına kullanabilir ve yönlendirebilirsiniz (aşağıdaki notlara bakın):

rem Saved in D:\Temp\WriteText.bat
@echo off
echo This is a test> test.txt
echo 123>> test.txt
echo 245.67>> test.txt

Çıktı:

D: \ Temp> WRITETEXT

D: \ Temp> test.txt yazın
Bu bir test
123
245,67

D: \ Temp>

Notlar:

  • @echo off her komutun konsola yazdırılmasını kapatır
  • Belirli bir yol adı belirtmedikçe, geçerli dizine (kodun çalıştırıldığı dizin) yeniden yönlendirme >veya >>yazacaktır.
  • echo This is a test > test.txtKullanımları biri >zaten yeni içerikle uygulandığı bir dosyanın üzerine yazmak.
  • Kalan echoifadeler >>, metin dosyasına eklemek (üzerine eklemek) yerine üzerine yazmak yerine iki karakter kullanır .
  • type test.txtBasitçe tipleri, komut penceresine dosya çıkış.

14
Son üç @işaret, zaten sahip olduğunuzdan beri gereksiz @echo off. Bunlara yalnızca yankı kapatılmamışsa ihtiyaç duyulur. stackoverflow.com/a/21077142/632951
Pacerier

119

Yalnızca bir kod bloğu kullanmak daha kolaydır, o zaman yalnızca bir yönlendirmeye ihtiyacınız vardır.

(
  echo Line1
  echo Line2
  ...
  echo Last Line
) > filename.txt

7
OMG çok basittir ve komut dosyası yazmanın programlama dünyasına giriş gibi olduğu için etkileyici bir şekilde yarı insan yapar
gregg

Bu benim için işe yaramadı, ancak `> filename.txt bloğunun önündeki yönlendirme ile bir varyasyon (` işe
yaradı

2
Sanırım, kod bloğunuzda bir yerde ek bir kapanış parantezi var.Yönlendirmeyi öne veya bloğa koyduğunuza bakılmaksızın, lütfen çalışması gerekir
jeb

@jeb Muhtemelen - Artık orijinal test dosyam yok, bu yüzden emin olamıyorum. Kesinlikle sonradan hipotezinizi destekleme eğiliminde olan karakterleri ^) kapatarak kaçmak zorunda kaldım. Yine de, en azından tartışmamız diğerlerini olası bir tuzağa karşı uyarıyor.
willw

23

echo "blahblah"> txt.txt txt'yi silecek ve yerine falan koyacak

echo "blahblah">> txt.txt blahblah'ı txt'deki yeni bir satıra yazacak

Ben hiçbiri yoksa her ikisi de yeni bir txt oluşturacağını düşünüyorum (İlki biliyorum)

txt.txtYukarıda " " yazıldığında, istenirse bir dosya yolu eklenebilir. örneğin C:\Users\<username>\desktop, masaüstüne koyacaktır.


2
evet, ikisi için de geçerli. Ne yazık ki cevap var olan cevaplara ek bilgi eklemez (söz. '%~dp0Would ...)
Stephan

aynı klasörde bir txt yazmak için?
Darth Tater

toplu iş dosyasının bulunduğu klasöre yazmak ( komutlardan cdveya pushdkomutlardan bağımsız olarak )
Stephan

14
    @echo off

    (echo this is in the first line) > xy.txt
    (echo this is in the second line) >> xy.txt

    exit

İki >>, dosyaya ikinci satırın ekleneceği anlamına gelir (yani ikinci satır, xy.txt dosyasının son satırından sonra başlayacaktır).

Bu nasıl xy.txtgörünüyor gibi:

this is in the first line
this is in the second line

5

@echo off Toplu İş Dosyaları Kullanarak Başlık Yazma color 0a

echo Örnek Metin> Dosyaadı.txt echo Ek Metin >> Dosyaadı.txt

@ECHO OFF
Title Writing Using Batch Files
color 0a

echo Example Text > Filename.txt
echo Additional Text >> Filename.txt

4
  • copy con Uzun bir metin yazmak için kullanabilirsiniz
  • Misal:

    C: \ COPY CON [sürücü:] [yol] [Dosya adı]

    .... İçerik

    F6

    1 dosya kopyalandı


Bir toplu iş dosyasında copy con kullanıcıdan istenir.
heringer

3
@echo off

echo Type your text here.

:top

set /p boompanes=

pause

echo %boompanes%> practice.txt

Bu yardımcı olur umarım. dize adlarını (IDK olarak adlandırılır) ve dosya adını değiştirmelisiniz

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.