Batch file 使用批处理文件和几个参数启动.exe
我需要启动一个程序并将几个参数交给.exe,但不能让它使用.bat文件 我还尝试在“”中设置包含参数的整个路径,但没有帮助 我的错在哪里?如果使用Batch file 使用批处理文件和几个参数启动.exe,batch-file,Batch File,我需要启动一个程序并将几个参数交给.exe,但不能让它使用.bat文件 我还尝试在“”中设置包含参数的整个路径,但没有帮助 我的错在哪里?如果使用 "C:\Program Files (x86)\Software\ameise.exe" --server=(local)\FILES --database=baset_1 --dbuser=sa --dbpass=asdasd+13da# --templateid=EXP6 --outputfile=C:\Users\Administrator\D
"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条件的.bat文件中,如果没有start“”命令,那么它就可以正常工作。
此外,if条件仅在“回波测试”时才能正常工作。
但是将程序行添加到条件中会使CMD窗口在.bat文件启动后立即关闭
我的错在哪里?
谢谢你的帮助
@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
让我们在运行单个命令时删除括号,尽管它们不会造成伤害。然后将if语句命令放在一行中 使用
eq
over=
查看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
添加到start命令。请参见上面的代码编辑 试试这个,看看是否有效
@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
我的荣幸。很高兴它有帮助:)嘿-哇,那帮了大忙!谢谢,现在它工作了!我对批处理脚本非常陌生。。。现在我注意到有两个命令行窗口打开了。一个显示.exe正在工作,另一个仅显示“按钮…”。没有回音通知。这是因为你启动了程序。也许可以删除整个
start”“/wait
部分,让它自己发出命令。太棒了!非常感谢你!如果使用不带括号的IF
,虽然在这种特殊情况下有效,但只会隐藏问题的事实。这是错误的,您甚至测试过它吗?“1”
如何等于1
我想我的答案已经过时了,因为你已经写了你的答案。抱歉。不是,但与原始答案相比没有太大变化,您的答案是错误的,您现在编辑了。您只需在--server=(local)\FILES
-->--server=(local^)\FILES中退出结束部分,因为它与IF
块的括号冲突。包含程序文件(x86)
的字符串没有问题,因为它被引号包围;否则你的答案是正确的。这是OP在他们的问题中遇到的问题的根本原因。