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
即使字符串匹配,实际上也不会将文件写入桌面。
答案 0 :(得分:0)
你需要
setlocal enabledelayedexpansion
位于批处理文件的顶部,然后代替
'%Result%'=='this is where the word string shows up'
你需要
'!Result!'=='this is where the word string shows up'
- 注意!代替 %。否则,在首次解析批处理文件时会扩展%Result%,此时Result变量不包含任何内容。这些更改意味着它会延迟解析它直到它在for循环中,此时它将被适当地填充。
答案 1 :(得分:0)
尝试在代码中使用setlocal enabledelayedexpansion。然后使用“!variable!”访问变量。而不是“%variable%”。 还要确保%% A是否正在获取所需的令牌。
答案 2 :(得分:0)
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
)