0
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  

即使字符串匹配,也不会实际将文件写入桌面。

4

3 回答 3

0

尝试在您的代码中使用 setlocal enabledelayedexpansion。然后使用“!变量!”访问您的变量 而不是“%variable%”。还要确保 %%A 是否正在获取所需的令牌。

于 2013-02-25T17:24:05.537 回答
0

你需要

setlocal enabledelayedexpansion

在批处理文件的顶部,然后代替

'%Result%'=='this is where the word string shows up'

你需要

'!Result!'=='this is where the word string shows up'

- 注意!代替 %。否则,在第一次解析批处理文件时会扩展 %Result%,此时 Result 变量不包含任何内容。这些变化意味着它会延迟解析它,直到它在 for 循环中,此时它将被适当地填充。

于 2013-02-25T16:56:32.447 回答
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
)
于 2013-02-25T17:41:44.727 回答