通过批处理文件运行.exe文件并传递参数

时间:2013-06-12 08:48:57

标签: batch-file cmd exe

我有一个.exe文件,当我从命令行运行它时需要两个参数:

test_app.exe -vid.avi -data.txt

如何通过批处理脚本START .exe文件并将其传递给那些参数?

如果我有多个.avi.txt个文件需要通过.exe传递给START文件,我怎样才能拥有一个变量通过所有这些文件一次两个? (将每个.avi与其对应的.txt配对。

我们假设每对.avi.txt共享相同的名称,但显然有不同的扩展名。

我需要写这样的东西:

@ECHO OFF
START test_app.exe -vid.avi -data.txt
pause

但参数应该是每次通过.exe处理一对参数时递增的变量,因此它将循环到CWD中的所有文件。

尝试这样做,但似乎START不能这样做?

@echo off
for %%a in (*.avi) do (
START Tester.exe -%%a -%%~na.txt
)
pause

2 个答案:

答案 0 :(得分:3)

试试这个,它适用于AVI作为主扩展,你可以改变这个:

@echo off &setlocal enabledelayedexpansion
for %%i in (*.avi) do (
    set "line="
    for %%j in ("%%~ni.*") do set line=!line! -"%%~j"
    start "" test_app.exe !line!
)

答案 1 :(得分:2)

尝试使用av​​i文件。它只会回显一堆命令,你可以看到它的作用。 - 迹象似乎有点奇怪,但我把它们包括在名字中。

@echo off
for %%a in (*.avi) do (
echo exe.file "-%%a" "-%%~na.txt"
)
pause