4

コマンドラインから実行するときに2つのパラメーターを取る.exeファイルがあります。

test_app.exe -vid.avi -data.txt

STARTバッチスクリプトを介して.exeファイルにアクセスし、それらのパラメーターを渡すにはどうすればよいですか?

.aviを介してファイル.txtに渡す必要があるファイルが複数ある場合、一度に2つのファイルすべてを通過する変数をどのように持つことができますか? (対応するすべてのペアリング)。.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 enableddelayedexpansion
for %%i in (*.avi) do (
    「ライン=」を設定
    for %%j in ("%%~ni.*") do set line=!line! -"%%~j"
    start "" 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 に答える