IF EXIST ... ELSE没有按预期执行IF EXIST运行chrome ELSE运行IE

时间:2013-08-14 04:00:28

标签: batch-file

我写了这个,所以每次去新计算机上工作java时都不需要磨蹭。我肯定通过阅读它你可以告诉我想要实现的目标,所以我不会厌烦你的细节。

主要问题是她不能正常工作; p我正在遵循这里的语法指南 - > http://ss64.com/nt/if.html< - 当我点击蝙蝠时,我看到终端屏幕运行脚本但没有任何反应。

如果它是基本的东西,请原谅我的无知,但这是第一次我需要一个批处理文件。

IF EXISTS C:\Users\{USER}\AppData\Local\Google\Chrome\Application\chrome.exe
    (
    chrome
    sleep1
    start "javatut" "http://docs.oracle.com/javase/tutorial/java/nutsandbolts/index.html"
    start "javaapi" "http://docs.oracle.com/javase/6/docs/api/"
    )
ELSE 
    (
    iexplore
    sleep1
    start "javatut" "http://docs.oracle.com/javase/tutorial/java/nutsandbolts/index.html"
    start "javaapi" "http://docs.oracle.com/javase/6/docs/api/"
    )

1 个答案:

答案 0 :(得分:1)

但您并未完全遵循语法准则。多行If / Else要求打开的闭括号与If和Else不在单独的行中在同一行。与Java不同,批处理文件确实关心空格。

IF EXISTS C:\Users\{USER}\AppData\Local\Google\Chrome\Application\chrome.exe (
    chrome
    sleep1
    start "javatut" "http://docs.oracle.com/javase/tutorial/java/nutsandbolts/index.html"
    start "javaapi" "http://docs.oracle.com/javase/6/docs/api/"
) ELSE (
    iexplore
    sleep1
    start "javatut" "http://docs.oracle.com/javase/tutorial/java/nutsandbolts/index.html"
    start "javaapi" "http://docs.oracle.com/javase/6/docs/api/"
)

我假设{USER}只是您示例的占位符,因为这不是有效的批处理语法。如果这是你的意思,变量的正确语法是%USER%

此外,您应该尝试从命令行运行批处理文件。在这种情况下,语法错误将打印到屏幕上 - 而不是让命令窗口自动关闭。