【发布时间】:2019-10-27 21:45:38
【问题描述】:
我正在尝试创建一个脚本,该脚本将自动测试很多键以激活我工作场所的程序。所以我的问题是我无法将变量与我硬编码的给定字符串进行比较。它应该很容易,但即使它输出的是完全正确的线,它也无法比较它。
我试过给变量一个不同的名字。将 ( ) 放置在许多不同的地方,这样代码就不会那么聚集。我尝试通过将变量回显到 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!对于我的字符串,我认为这将是简单的部分,没想到在这行代码上会遇到这么多的困难。
【问题讨论】:
-
请不要在您的问题中包含解决方案,而是发布(明确)答案,然后您可以接受...
-
您需要将变量括在引号中。
if "!_demo!" NEQ "Product..."
标签: batch-file for-loop variables cmd