批次:%% a循环变量无法与静态字符串进行比较

时间:2019-06-13 10:05:43

标签: batch-file for-loop variables cmd

我正在尝试创建一个脚本,该脚本将自动测试很多按键以激活工作场所的程序。所以我的问题是我无法将变量与我硬编码的给定字符串进行比较。它应该很容易,但是即使它正好在输出,也无法比较它。

我试图给变量起一个不同的名字。 ()放在许多不同的位置,因此代码变得不太聚集。我试着通过将变量回显到txt文件中来处理该变量,然后将其复制到代码中。还是没用。我试图测试我的IF,看看是否是问题所在。但它工作正常。我试图将我的%% a变量解析为%_demo%变量。没有效果。因此,我认为该字符串中可能有一个字符,我无法在记事本或类似内容中读取该字符。但是即使我在for循环内用delims切掉了所有我可能想到的东西,只留下一个字也不起作用。 然后我尝试了SETLOCAL DisableDelayedExpansion,它什么也没改变。

在inp.txt文件中,您将在代码内部看到的只是批处理中捕获的命令输出,我在这里对输出进行了注释,因此您可以看到它的外观。 我已经对其进行了测试。它仅搜索哪个有效,这不是问题。

REM Microsoft (R) Windows Script Host, Version 5.812 
REM Copyright (C) Microsoft Corporation. Alle Rechte vorbehalten. 
REM ---Processing-------------------------- 
REM --------------------------------------- 
REM <Product key installation successful> 
REM --------------------------------------- 
REM ---Exiting----------------------------- 

for /f "delims=<,>" %%a in ('findstr "<Product key installation successful>" %homepath%\Desktop\inp.txt') do (
set _demo=%%a
)
echo !_demo!
if !_demo! NEQ "Product key installation successful" echo Produkt key installation fehlgeschlagen... && echo.
if !_demo! EQU "" echo Etwas lief schief... && echo !_demo! && echo.
if !_demo! EQU "Product key installation successful" (
*activate it*
) else (
*try again*
)

所以它应该只比较!_demo!在我的字符串中,我认为这将是简单的部分,并且没想到在这行代码上会遇到很多麻烦。

1 个答案:

答案 0 :(得分:0)

我找到了解决方案... 我只是将“产品密钥安装成功”放入其自己的变量中,并且可以正常工作。结案