我正在尝试在批处理脚本中生成字符串的sha256哈希值。
为此,我找到了sha256sum.exe(link) 此应用程序仅接受文件参数。
因此,我需要创建一个包含字符串的文件,没有尾随空格,也不需要CR或LF。
在我的批处理脚本中我做了:
echo.|set /P =%var%>temp.txt
sha256sum temp.txt > temp2.txt
我用第一行删除CR&但是在temp.txt文件中我看到一个尾随空格char,然后由sha256sum.exe使用。
我试图摆脱文本文件第一行末尾的尾随空格字符。
我是一名Linux用户,我并不期待这么简单的问题。 提前谢谢。
答案 0 :(得分:2)
最简单的方法是替换所有空格;
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"
答案 1 :(得分:0)
你可以这样做:
set /p =%var%>temp.txt <NUL
而不是:
echo.|set /P =%var%>temp.txt