在批处理脚本中创建包含字符串且没有CR或LF的文件

时间:2011-07-26 11:16:17

标签: scripting batch-file

我正在尝试在批处理脚本中生成字符串的sha256哈希值。

为此,我找到了sha256sum.exe(link) 此应用程序仅接受文件参数。

因此,我需要创建一个包含字符串的文件,没有尾随空格,也不需要CR或LF。

在我的批处理脚本中我做了:

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

我用第一行删除CR&但是在temp.txt文件中我看到一个尾随空格char,然后由sha256sum.exe使用。

我试图摆脱文本文件第一行末尾的尾随空格字符。

我是一名Linux用户,我并不期待这么简单的问题。 提前谢谢。

2 个答案:

答案 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