4

我有一个 .exe 文件,当我从命令行运行它时,它带有两个参数,如下所示:

test_app.exe -vid.avi -data.txt

我如何能够通过批处理脚本获取文件并将这些参数传递给它START.exe

如果我有多个文件需要通过 传递给文件.avi,我怎么能有一个变量一次通过所有这些文件?(将每一个与其对应的配对)。.txt.exeSTART.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
4

2 回答 2

3

试试这个,它以 AVI 作为主要扩展名,你可以改变这个:

@echo off &setlocal enabledelayedexpansion
对于 (*.avi) 中的 %%i 执行 (
    设置“线=”
    对于 %%j in ("%%~ni.*") 设置 line=!line! -“%%~j”
    开始 "" test_app.exe !line!
)
于 2013-06-12T09:12:25.393 回答
2

用你的 avi 文件试试这个。它只会回显一堆命令,您可以看到它的作用。- 符号似乎有点奇怪,但我将它们与名称一起包含在内。

@echo off
for %%a in (*.avi) do (
echo exe.file "-%%a" "-%%~na.txt"
)
pause
于 2013-06-12T10:35:18.440 回答