2012-02-28 17 views
5

समाप्त होने वाली लाइन के बिना फ़ाइलों को लिखें, मुझे एक डॉस बैच स्क्रिप्ट लिखते समय एक स्थिति है। एक टूल जो मैं पाठ स्ट्रिंग के सीआरसी (चेकसम) की गणना करने के लिए उपयोग कर रहा हूं, टेक्स्ट को फ़ाइल में होना आवश्यक है। जिस डेटा को मैं सीआरसी प्राप्त करने की कोशिश कर रहा हूं वह एक फ़ाइल नाम है, लेकिन सीआरसी की गणना करने के लिए इस फ़ाइल नाम को टेक्स्ट फ़ाइल में रखने के लिए बैच का उपयोग करते समय, बैच स्क्रिप्ट स्वाभाविक रूप से लाइन एंडिंग (सीआर/एलएफ) और एक खाली रेखा को रखती है समाप्त। चूंकि यह सीआरसी गलत होने का कारण बनता है, यह एक समस्या है।डॉस बैच:

क्या कोई लाइन समाप्त करने के बिना टेक्स्ट फ़ाइल में लिखने के लिए बैच स्क्रिप्ट प्राप्त करने का कोई तरीका है? आईई फाइल को अधूरा एक लाइन को अधूरा करने के लिए?

-K.Barad

+1

उपकरण कमांड लाइन से इनपुट स्वीकार करता है, या आप इसे पाइप '|' के साथ बुला सकते हैं? – vulkanino

उत्तर

9

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

यह तेज़ और सुरक्षित की तुलना में echo.|set /P ="text" > file

नुल पुनर्निर्देशन साथ echo. (Btw echo. असफल हो सकता है) एक पाइप की तुलना में तेजी है।
उद्धरण की शैली भी उद्धरण को आउटपुट करने की अनुमति देती है।

लेकिन हमेशा प्रतिबंध होते हैं!
विस्टा और विन 7 में अग्रणी रिक्त स्थान, टैब और सीआर के लिए एक "सुविधा" है।
एक्सपी अग्रणी रिक्त स्थान के साथ पाठ आउटपुट कर सकता है।
और आउटपुट टेक्स्ट को बराबर चिह्न के साथ शुरू करना संभव नहीं है (परिणाम वाक्यविन्यास त्रुटि में परिणाम)

+0

धन्यवाद, यह मेरे लिए –

+0

हल करता है जब मैं ' file' यह मेरे टर्मिनल को लटकता है। क्या चल रहा है? – raphaelh

+0

मुझे यह क्यों मिलता है कि 'आदेश का वाक्यविन्यास गलत है।' जब मैं कोशिश करता हूं? .. –

5

आप कर सकते थे

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

source

या सीधे पाइप कमांड लाइन के लिए पाठ: गूंज "पाठ" | checksum_program.exe

संपादित:

अगर आप CRC32DOS उपयोग कर रहे हैं, तो आप अपने आदेश पंक्ति विकल्प -cCR रों अनदेखी करने के लिए उपयोग कर सकते हैं।

+0

दुर्भाग्य से यह एक कस्टम सीआरसी कार्यक्रम है। हालांकि टिप के लिए धन्यवाद, नई लाइनों के बिना संलग्न फाइल एक उपयोगी तकनीक है। –