我想制作这种批处理文件,它会起作用吗?

时间:2014-12-26 20:06:23

标签: file batch-file if-statement

我想制作这种批处理文件

       @ECHO OFF
(
    IF  "pulsar.exe" exist (
    taskkill /f /im "pulsar.exe" 
    )
    ELSE (
    run "C:\Program Files (x86)\XBMC\XBMC.exe" 
     )
 )

我希望XBMC能够运行scipt auto

2 个答案:

答案 0 :(得分:0)

@ECHO OFF
IF  exist "pulsar.exe" (
 taskkill /f /im "pulsar.exe" 
) ELSE (
  "C:\Program Files (x86)\XBMC\XBMC.exe" 
)

这是您的代码的语法上有效的版本。

您没有说出您尝试解决的问题,因此您收到的评论是正确的。

此例程检查文件是否存在"pulsar.exe"(注意:if exist filename

如果文件存在,则终止pulsar.exe任务。

如果文件不存在,则执行xbmc.exe

请注意,括号的定位至关重要。不需要围绕整个过程的整个()集。该结构可用于将过程的输出重定向到文件 - 但您显然没有输出任何内容。

if及其匹配的(必须位于同一条物理线上(您还可以)。

如果使用,else and its matching(`必须在同一条物理线上(你没那么好)。

如果使用,)关闭ifelse必须位于同一物理线路上。

参与(的每个if...else必须以空格开头,每个)参与者必须以空格或换行符继续。

您需要调用可执行文件的所有内容都是使用其名称。如果可执行文件是批处理文件,则需要call executablename parameters否则控制传输到调用的批处理。

批处理将等到.exe终止后再继续。您可以使用start "windowtitle" executablename parameters创建独立流程并继续批处理。 "windowtitle"名义上是可选的,但最好包括在内 - 甚至留空(即"")以避免混淆cmd

答案 1 :(得分:0)

我做到了

        @ECHO OFF
IF exist "pulsar.exe" == tasklist /fi "imagename eq pulsar.exe"
( taskkill /f /im "pulsar.exe" 
) 
 If not exist "pulsar.exe" == tasklist /fi "imagename eq pulsar.exe"
 ("C:\Program Files (x86)\XBMC\XBMC.exe" 
 )