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

时间:2013-04-17 01:39:19

标签: batch-file isnull

有没有办法在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语句?

感谢您的协助。

1 个答案:

答案 0 :(得分: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

这将显示返回的每件商品,开头为++,每行末尾为$$

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

要寻找的东西:

  • ++在开始时和$$在每行的结尾
  • 没有显示任何行开始$$
  • 可能有一行“++ [spaces] $$”
  • 应该没有“++ $$”