2012-09-20 19 views
7

DOS'ta bir dosyaya bir şey yazdırmak için echo kullandığımda dizeye bir boşluk eklendiğini fark ettim. Dizgiyi izleyen boşluk olmadan basmam gerekiyor. Bunu yapmak için bir yol var mı, yoksa bir çözüm olarak, dosyadan sondaki boşlukları kaldırmak mı?DOS'ta boşluk bırakmadan yankı kullanımı

cevap

19

Sorunu doğru bir şekilde anlamış olsaydım, , numaralı boşluğu yazdı. Bunun yerine

echo string > file 

kullanım

echo string>file 
+0

Ha! Tam olarak bu! Yankanın tam dizeden sonra çıkacağını bilmiyordum. Teşekkürler! – Rayne

+2

Bu iyi görünüyor, ama işe yaramaz. Bunu deneyin: echo 1 2 3> file'. Dize bir sayı ile bitecek olursa, yönlendirme bunu bir kanal kanalı olarak ele alacaktır. Alıntıya koyabilirsiniz, ancak tırnak içinde istemeyebilirsiniz. – Synetech

+2

@Synetech '(echo 1 2 3)> dosya ' – bers

0

ait

Hızlı bir arama Size birden fazla seçenek var gibi görünüyor this link

getirdi. Eğer sonrası yankı bir komut dosyası kullanarak dosyayı ayrıştırmak istiyorsanız, sondaki boşlukları şeritleri bir dosya (genellikle .txt) aracılığıyla hattı ile, çizgi döngüler ve RTrim gerçekleştiren bu VBScript

Do While Not WScript.StdIn.AtEndOfStream 
    WScript.Echo RTrim(WScript.StdIn.ReadLine) 
    Loop 

, düşünebilirler.

Şerefe sen yerine yaklaşık cmd.exe konuşuyor varsayarsak

+0

Aynı işlem," for/f "tokens = * delims =" %% x in (file.txt) echo% x> file2.txt ile toplu olarak gerçekleştirilebilir. '. Ama o zaman neden orijinal dosyanızda yapmıyorsunuz? –

10

gerçek (daha doğrusu eski) MSDOS, bunu yapmanın çeşitli yolları, ilk varlık vardır:

echo Here is some text>output.txt 

ama Komut satırında 'argümanları' açık bir şekilde betimlemek için kullanabildiğimden beri, okunabilirlikten biraz daha azını buluyorum.

Alternatif olarak, komut satırı sırasına etrafında takas alıkoyan şey yok: hala çıkış dosyasına koymak, gereksiz boşluklar olmaması iken bağımsız değişkenleri ayırmak sağlayacak

>output.txt echo Here is some text 

.

Aslında, sık sık yanı kod blokları için bu yöntemi kullandım:

>output.txt (
    echo hello 
    echo goodbye 
) 

hangi dosyaya hem satırları yazacak. Bu durumda tercih ettim, çünkü çıkışın başlangıcında, kod bloğunun sonuna bakıp gitmekten ziyade, çıkışın başladığı yerde doğru bir şekilde biliyorsunuz.

+0

Bir kod bloğu içinde yankılanırken bazen taşıma sırasını kaybedeceğini ve tek bir satırda çıkacağını buldum. –

+0

Ayrıca, önde gelen boşluklarla ilgili sorun yaşadım, bu nedenle yukarıdaki biçimde (^) karta (echo^string1) çıkışını kullandım. Bir tedavi yaptı. – will

+0

'echo İşte bir metin> çıktı.txt ancak, komut satırında 'argümanları' açıkça ifade edebilmek için kullanıyorum beri okunabilir biraz daha az bulabilirsiniz. 'Daha önemlisi, metin bir sayı ile biterse, boru kanalı olarak ele alınacaktır. İkincisi iyi çalışıyor gibi görünüyor (daha önce bu formu görmüyorum). Teşekkürler. – Synetech

İlgili konular