如何在批处理文件中的for循环中嵌套if语句

时间:2016-05-02 22:20:04

标签: batch-file if-statement for-loop

我无法在我的批处理脚本中的for循环结束时执行if语句。代码如下......

for /F "tokens=2 delims=/:" %%D in (%DBhost%.txt) do 'if [NOT] %%D==localhost (RD /S /Q "\\%%D\C$\%%D_Health_Check_Logs")'

我搜索了很多,实际上认为这可能只是无效?反正有没有为每个执行if语句?我觉得必须有一些我想念的东西。我尝试了(){}[],但没有一个能让它正常工作。

感谢任何想法或想法。

2 个答案:

答案 0 :(得分:1)

让我怀疑rd command是否允许UNC路径。下一个代码段应以正确的方式处理UNC Network paths。但是,(不确定):它不会照顾

  • 删除目录和
  • 的存在
  • 用户执行RD操作的权利......

...

for /F "tokens=2 delims=/:" %%D in (%DBhost%.txt) do (
  if /I NOT "%%~D"=="localhost" ( 
     pushd "\\%%D\C$"
     RD /S /Q "%%D_Health_Check_Logs"
     popd
  )
)

答案 1 :(得分:0)

非常感谢大家。看起来像JosefZ和aschipfl都在。 RD确实与UNC路径一起工作,我无法进行推送和弹出工作,但不需要。这是一个确保逻辑条件正常工作的问题,而不是。一旦我有了这个设置,下面的代码就像一个魅力。

工作代码......

for / F“tokens = 2 delims = /:”%% D in(%DBhost%.txt)do(if / I NOT“%% D”==“%DBhost%”(RD / S / Q) “\ %% d \ C $ \ %% D_Health_Check_Logs”))