Batch file 成批使用字符串中的空格返回cURL

Batch file 成批使用字符串中的空格返回cURL,batch-file,return,md5,Batch File,Return,Md5,使用cURL获取我以前传递的字符串的MD5值(%STR%) 这很好,但是只要%STR%中有空格,代码就不再工作了 如果我把URL和%STR%放在“”中,就什么都不起作用了 你能帮我吗 set STR=anystr set CURL=C:\curl\bin\curl.exe set MD5URL=https://anyurl.com/md5.php?hash=%STR% for /F %%I in ('%CURL% -s %MD5URL%') do set HASH=%%I

使用cURL获取我以前传递的字符串的MD5值(%STR%)

这很好,但是只要
%STR%
中有空格,代码就不再工作了

如果我把URL和
%STR%
放在“”中,就什么都不起作用了

你能帮我吗

set STR=anystr
    
set CURL=C:\curl\bin\curl.exe
set MD5URL=https://anyurl.com/md5.php?hash=%STR%
    
for /F %%I in ('%CURL% -s %MD5URL%') do set HASH=%%I
    
echo HASH
pause

空格是批处理文件使用的
cmd
中命令和参数之间的分隔符。所以双引号你的字符串

@echo off
set "str=anystr"
    
set "_curlcmd=C:\curl\bin\curl.exe"
set "MD5URL=https://anyurl.com/md5.php?hash=%str%"
    
for /F %%I in ('"%_curlcmd% -s "%MD5URL%"') do set "_HASH=%%I"
    
echo %HASH%
pause

我假设你正在寻找这样的东西:

@Echo关闭
SetLocal EnableExtensions DisableDelayedExpansion
设置“哈希=”
设置“CURL=C:\CURL\bin\CURL.exe”
设置“STR=anystr”
Rem将%STR%中的所有空格字符替换为%20
SetLocal EnableDelayedExpansion
设置u=!STR:=%%20!
EndLocal&设置“STR=%\uux%”
设置“MD5URL”=https://anyurl.com/md5.php?hash=%STR%"
对于(“^”“%CURL%”-s”%MD5URL%”中的/F%%I,请设置“HASH=%%I”
如果未定义哈希转到:EOF
回显%HASH%
暂停
A包含空格字符的URL无效。URL中的每个空格字符都必须为空。因此,对于有效的URL,URL中的空格字符必须替换为
%20
。顺便说一句:使用您最喜欢的www搜索引擎和
certutil md5
作为搜索词,您可以找到描述如何使用
%SystemRoot%\System32\certutil.exe
获取文件或字符串的md5总和的页面。另请参见堆栈溢出搜索结果。