Windows批处理文件If / Else Start语法?

时间:2014-10-23 01:03:40

标签: windows batch-file if-statement syntax

我需要创建一个Windows批处理文件:

  • 1.-检查目录名称"如果"它存在,    a.-从其他目录运行指定的* .exe。

  • 2.-或" Else"    a.-重命名目录    b.-重命名另一个目录 - 然后    c.-从创建的目录运行* .exe。

问题是:我在创建此批处理文件时遇到了正确的语法(我猜)。这就是我所拥有的,(也许是嵌套if / Else会更好?)有人请赐教......谢谢。

@echo off
IF EXIST "C:\Test\Dir1" (
START "C:\Test\Dir\Test.exe"
) ELSE ( ren "C:\Test\Dir" "C:\Test\Dir1"
         ren "C:\Test\Dir2" "C:\Test\Dir"
         START "C:\Test\Dir\Test.exe"
)

2 个答案:

答案 0 :(得分:1)

您不能ren使用包含路径或驱动器的目标名称。

尝试

ren "C:\Test\Dir2" "Dir"

start语法奇怪 - 虽然在这种情况下似乎不是问题。第一个"引用的论点" string成为窗口标题,可以被常规可执行文件忽略。尝试 经常使用

start "window title that can be empty if you like" "executablename" argument list

即使这可能并不完全符合记录的行为。

(并将问题简化为一般性也会掩盖真正的原因)

答案 1 :(得分:0)

感谢dbenham和Magoo。你的回答在看似非常简单的事情上创造了一个与众不同的世界。它现在正在工作,因为你提到的所有变化都有帮助。最后的“钉在棺材里”是理解START参数的语法。理解第一个参数有双引号并且它使用它作为新窗口的可选TITLE,ssoooo给它一个空的双引号(“”)在程序名称之前给它一个空标题来伪造它。和Voila ......

谢谢你们sssooo。最终工作批处理文件。

@echo off
IF EXIST "C:\Test\Dir1" (
START "" "C:\Test\Dir\Test.exe"
) ELSE ( ren "C:\Test\Dir" "Dir1"
         ren "C:\Test\Dir2" "Dir"
         START "" "C:\Test\Dir\Test.exe"
)