同じバッチ ファイルの特定の量を同時に起動しようとしていますが、パラメーターを渡すのに問題があります。
私が使用するコマンドは次のとおりです。
START "Split lossless enc %%G" "%wrkdir%_menc.bat" "%wrkdir%%avs%_%%G.avs" "%wrkdir%%outf%_%%G.avi" "%menc%" "%mencx%"
%%G は数字です (私のテストでは 1 から 4 まで)
%wrkdir% は現在の作業ディレクトリです (つまり、基本的に %~dp0)
%avs% と %outf% は両方とも拡張子
のないファイル名です %menc% はファイル名を含むフルパスです拡張子
%mencx% は拡張子付きのファイル名です
これらのいずれにもスペースが含まれている可能性がありますが、私が行ったテストでは含まれていないため、パラメーターの周囲の引用符を削除すると、今のところ完全に機能します。
私が行ったすべての検索の後、パラメーターを引用するだけでうまくいくはずですが、次のエラーが発生し続けます。The filename, directory name, or volume label syntax is incorrect.
起動したbatファイルのパラメーターを使用しないようにして、そこで使用した方法が問題の原因ではないことを確認しました(非常に疑っていましたが)が、含まれているだけでも機能しませんECHO it works
編集: START が 1 から 4 までの FOR ループにあり、setlocal enableDelayedExpansion を使用することを忘れていましたが、使用する変数はすべてその前に設定されています (明らかに FOR に属する %%G を除く)。そしてループの外にある
Edit2:簡単にするために、バッチファイルを最小限に抑えました(同じエラーが発生することを確認するためにテストしました)ので、すべてを提供できます:
@ECHO off
SET wrkdir=%~dp0
SET avs=encode-01
SET menc=D:\_1enc_\_Tools\Mencoder\mencoder_r32198.exe
SET outf=test_mt
SET inst=4
SET mencx=%menc%
:FindMencx
IF NOT "%mencx:*\=%"=="%mencx%" (
SET "mencx=%mencx:*\=%"
GOTO FindMencx
)
FOR /L %%G IN (1,1,%inst%) DO (
START "Split lossless enc %%G" "%wrkdir%_menc.bat" "%wrkdir%%avs%_%%G.avs" "%wrkdir%%outf%_%%G.avi" "%menc%" "%mencx%"
)