FOR /F "tokens=*" %%A IN ('gpresult /r ^| FIND "string"') DO SET Result=%%A
if '%Result%'=='this is where the word string shows up'
echo Success > %homepath%\Desktop\Success.txt
即使字符串匹配,也不会实际将文件写入桌面。
FOR /F "tokens=*" %%A IN ('gpresult /r ^| FIND "string"') DO SET Result=%%A
if '%Result%'=='this is where the word string shows up'
echo Success > %homepath%\Desktop\Success.txt
即使字符串匹配,也不会实际将文件写入桌面。
尝试在您的代码中使用 setlocal enabledelayedexpansion。然后使用“!变量!”访问您的变量 而不是“%variable%”。还要确保 %%A 是否正在获取所需的令牌。
你需要
setlocal enabledelayedexpansion
在批处理文件的顶部,然后代替
'%Result%'=='this is where the word string shows up'
你需要
'!Result!'=='this is where the word string shows up'
- 注意!代替 %。否则,在第一次解析批处理文件时会扩展 %Result%,此时 Result 变量不包含任何内容。这些变化意味着它会延迟解析它,直到它在 for 循环中,此时它将被适当地填充。
echo
应该与:位于同一if
行
if '%Result%'=='this is where the word string shows up' echo Success > %homepath%\Desktop\Success.txt
或在其周围加上括号:
if '%Result%'=='this is where the word string shows up' (
echo Success > %homepath%\Desktop\Success.txt
)