cmd 脚本中的条件语句

cmd 脚本中的条件语句

我正在使用 编写脚本appcmd。我想要做的是检查给定的站点是否存在,如果存在则执行操作。在这种情况下,删除它。

appcmd list app | find "mySite"

因此,如果 find "mySite" 返回任何文本,我想执行删除语句。现在,我明白我可以尝试删除该网站并忽略错误,但这会产生(可能)令人困惑的输出。

我尝试过类似下面的操作,我假设我只是在 if 语句中使用变量appExists,但结果却是空白。总是这样。

set appExists=appcmd list app | find "mySite"
echo %~n0: %appExists%

我怎样才能实现这个目标?

答案1

你可以这样做:

for /f "delims=" %%f in ('appcmd list app ^| find "mySite"') do (
    set appExists=%%f
)
echo %~n0: %appExists%

但是然后你可以跳过设置环境变量和添加 if 测试,并将删除构建到 for 循环中:

for /f "delims=" %%f in ('appcmd list app ^| find "mySite"') do (
    rem appcmd whatever whatever remove %%f here
)

(并检查选项(for /?)以使用delims=tokens=直接获取您需要的任何部分)。

相关内容