Пакеты Dos: запись в файлы без окончания строки - PullRequest
5 голосов
/ 28 февраля 2012

У меня возникла ситуация при написании скрипта dos batchs.Инструмент, который я использую для вычисления CRC (контрольной суммы) текстовой строки, требует, чтобы текст находился в файле.Данные, для которых я пытаюсь получить CRC, представляют собой имя файла, но при использовании пакета для помещения этого имени файла в текстовый файл для вычисления CRC, пакетный скрипт естественным образом помещает конец строки (CR / LF) и пустую строку вконец.Так как это приводит к неправильной CRC, это проблема.

Есть ли способ получить пакетный скрипт для записи в текстовый файл без добавления конца строки?IE для вывода одной строки незавершенной в файл?

-K.Barad

Ответы [ 2 ]

10 голосов
/ 28 февраля 2012

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

Это быстрее и безопаснее, чем echo.|set /P ="text" > file

Нулевое перенаправление быстрее, чем канал с echo. (кстати, echo. может выйти из строя).
Стиль кавычек позволяет выводить также кавычки.

Но всегда есть ограничения!
В Vista и Win7 есть «функция» для подавления пробелов, табуляции и CR.
Xp может выводить текст с начальными пробелами и т. Д.
И невозможно начать вывод текста со знака равенства (приводит к синтаксической ошибке)

5 голосов
/ 28 февраля 2012

Вы могли бы

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

источник

Или напрямую передать текст в командную строку: эхо "текст" | checksum_program.exe

редактировать :

если вы используете CRC32DOS , то вы можете использовать параметр командной строки -c, чтобы игнорировать CR s.

...