我尝试将命令输出导入变量,然后比较这些变量是否具有相同的值。但是它总是返回两个变量具有相同的值(即使并非如此)。以下是我的代码:
@echo off
goto main
:main
setlocal
echo 111 | (set /p readvalue= & set readvalue)
echo 123 | (set /p readvaluebash= & set readvaluebash)
if "%readvalue%"=="%readvaluebash%" goto valid
if NOT "%readvalue%"=="%readvaluebash%" goto invalid
:valid
echo yes
pause
goto finish
:invalid
echo no
pause
goto finish
:finish
endlocal
我总是得到“是”的结果。有人知道我的错误在哪里吗?提前感谢!
goto
。此外,通过尝试echo
变量的值来进行故障排除。 - Jeff Zeitlinecho 111
,下一行输入set /p readvalue= & set readvalue
,再下一行输出echo 123
,再下一行输入set /p readvaluebash= & set readvaluebash
,或者简单地说,逐行执行而不是使用echo 123 | (set....)
。 - HackerNCoder