2012-02-28 15 views
5

Bir dos batchs komut dosyası yazarken bir durumum var. Bir metin dizesinin CRC (sağlama toplamı) hesaplamak için kullandığım bir araç, metnin bir dosyada olmasını gerektirir. CRC'yi almaya çalıştığım veriler bir dosya adıdır, ancak bu dosya adını CRC'yi hesaplamak için bir metin dosyasına koymak için bir toplu iş kullanılırken, toplu iş komut satırı doğal olarak satır sonunu (CR/LF) ve boş bir satırı koyar. son. Bu CRC'nin yanlış olmasına sebep olduğundan, bu bir problemdir.Dos Toplu İşlemler: satır sonu olmayan dosyalara yaz

Bir satır sonu eklenmeden bir metin dosyasına yazmak için bir toplu komut dosyası almanın bir yolu var mı? IE dosyaya bitmemiş tek bir satır çıktı?

+1

araç komut satırından bir girişi kabul ediyor mu, yoksa bir '|'? – vulkanino

cevap

9

<nul set /p ".=text" > file

daha hızlı ve daha güvenli echo.|set /P ="text" > file

nul yönlendirme echo. (btw echo. başarısız olabilir) olan bir boru daha hızlı olduğunu.
Tırnakların stilleri de çıktıların alınmasına izin verir.

Ancak her zaman kısıtlamalar vardır!
Vista ve Win7, önde gelen boşlukları, Sekmeler ve CR'leri bastırmak için bir "özelliğe" sahiptir.
Xp, metinleri önde gelen boşluklarla ve benzeri şekilde gönderebilir.
Ve çıktı metnine eşit bir işaret ile başlanamıyor (bir sözdizimi hatasıyla sonuçlanır)

+0

Teşekkürler, bu benim için çözüldü –

+0

" file" yi çalıştırdığımda, terminalimi kilitler. Neler oluyor? – raphaelh

+0

Neden deniyorum "Komutun sözdizimi yanlış." Denediğimde? .. –

5

-K.Barad Yapabilirsin

echo.|set /P ="text" > file 

source

Veya doğrudan boru komut satırına metin: yankı "metin" | checksum_program.exe

düzenlemek:

Eğer CRC32DOS kullanıyorsanız, o zaman CR s görmezden kendi komut satırı seçeneğini -c kullanabilirsiniz.

+0

maalesef bu özel bir CRC programı. İpucu için teşekkürler, yeni satırlar eklemeden dosya yararlı bir tekniktir. –