0

有没有办法在 bat 文件中测试此表达式中的空值?

FOR /F %%f IN ('C:\Windows\System32\inetsrv\appcmd list site /text:name /bindings:') DO rmdir /s/q "D:\Websites\%%f"

如果 %%f 为空,它不会执行 Do rmdir 语句?

感谢你的协助。

4

1 回答 1

1

应该没有必要。如果的输出APPCMD是一个空字符串,FOR /F将忽略它(如果行开始;

现在,如果任何一行只包含空格,那是另一个问题。

通过运行此批处理进行检查:

@echo off
setlocal
FOR /F %%f IN ('C:\Windows\System32\inetsrv\appcmd list site /text:name /bindings:') DO ECHO ++%%f$$
pause

这将在每行++的开头和$$结尾显示返回的每个项目。

如果报告了不需要的名称,那么我们需要处理它。

要寻找的东西:

  • ++ 在每行的开头和 $$ 在每行的末尾
  • 似乎没有行以 $$ 开头
  • 可能有一行“++[空格]$$”
  • 应该没有“++$$”行
于 2013-04-17T02:47:26.203 回答