Создайте файл, содержащий строку без CR или LF в пакетном скрипте - PullRequest
2 голосов
/ 26 июля 2011

Я пытаюсь сгенерировать sha256 хэш строки в пакетном скрипте.

Для этого я нашел sha256sum.exe ( ссылка ), это приложение принимает только аргументы файла.

Таким образом, мне нужно создать файл со строкой, без конечного пробела, ни CR, ни LF.

в моем пакетном скрипте я сделал:Первая строка для удаления CR & LF, однако в файле temp.txt я вижу один завершающий символ пробела, который затем используется sha256sum.exe.

Я пытаюсь избавиться от этого символа пробела в конце первой строки текстового файла.

Я - пользователь Linux и не ожидал такой простой вещибыть проблемой.Заранее спасибо.

Ответы [ 2 ]

2 голосов
/ 26 июля 2011

Простейшей вещью было бы заменить все пробелы;

set h=0x0C29A1BCD3DC8425712A0107B6693361CCBBABAC 
echo."%h%"
set h=%h: =%
echo."%h%"

>> "0x0C29A1BCD3DC8425712A0107B6693361CCBBABAC "
>> "0x0C29A1BCD3DC8425712A0107B6693361CCBBABAC"

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

Извините, я не понял, что дополнительный пробел был в записанном значении, как насчет

@echo off
set var=hashme
for %%a in (%var%) do (
echo/|set /p ="%%a"
)>temp.txt

FOR /F "tokens=1" %%i in ('sha1sum temp.txt') do SET var=%%i 
echo "%var:~0,-1%"

Я скачал этот sha1sum.exe и для "hashme" вывод правильный;

"fb78992e561929a6967d5328f49413fa99048d06"
0 голосов
/ 02 августа 2011

Вы можете сделать:

set /p =%var%>temp.txt <NUL

вместо:

echo.|set /P =%var%>temp.txt
...