使用批处理文件和几个参数启动.exe

时间:2018-08-21 14:04:45

标签: batch-file

我需要启动一个程序,并将几个参数移交给.exe,但不要将其与.bat-File一起使用。

我还尝试设置包括“”中的参数在内的整个路径,但无济于事。

我的错误在哪里?如果使用

"C:\Program Files (x86)\Software\ameise.exe" --server=(local)\FILES --database=baset_1 --dbuser=sa --dbpass=asdasd+13da# --templateid=EXP6 --outputfile=C:\Users\Administrator\Documents\DATA.csv

在.bat文件中不使用start“”命令而没有if条件的情况下,它完全可以正常工作。 同样,if条件仅在“回声测试”下才能完美运行。 但是,在条件中添加程序行将使.bat文件启动后立即关闭CMD窗口。

我的错误在哪里? 坦克帮你!

@echo off

set var1=1
set var2=1

IF %var1%==1 (
    start "" "C:\Program Files (x86)\Software\ameise.exe" --server=(local)\FILES --database=baset_1 --dbuser=sa --dbpass=asdasd+13da# --templateid=EXP6 --outputfile=C:\Users\Administrator\Documents\DATA.csv
)

IF %var2%==1 (
    echo test
)
Pause

2 个答案:

答案 0 :(得分:1)

在运行单个命令时,请删除括号,尽管它们不会造成伤害。然后将if语句命令放在一行中。

equ上使用==可以进一步了解if /?。另外,我总是将if变量用双引号引起来。.以防万一一些令人恐惧的空白出现在其中。

所以请尝试一下,未经测试,因为我没有您的命令可用

@echo off
set var1=1
set var2=1

if "%var1%" equ "1" start "" /wait "C:\Program Files (x86)\Software\ameise.exe" --server=(local)\FILES --database=baset_1 --dbuser=sa --dbpass=asdasd+13da# --templateid=EXP6 --outputfile=C:\Users\Administrator\Documents\DATA.csv
if "%var2%" equ "1" echo test
Pause

编辑,如果需要按顺序将/wait添加到启动命令中。参见上面的代码编辑。

答案 1 :(得分:0)

尝试一下,看看是否可行。

@echo off

set var1=1
set var2=1

if "%var1%" == "1" (
    "C:\Program Files (x86)\Software\ameise.exe" --server=^(local^)\FILES --database=baset_1 --dbuser=sa --dbpass=asdasd+13da# --templateid=EXP6 --outputfile=C:\Users\Administrator\Documents\DATA.csv
)
if "%var2%" == "1" (
    echo.Test
)
pause>nul