2016-04-14 7 views
2

これは初めてのことですので、誰かが初心者を援助できることを願っています。これまでの回答を見つけることはできません。基本的には、新しい.MXFファイルを取得し、特定のコマンドラインアプリケーションを実行し、元のファイル名+ _新しいファイルの名前を変更するウォッチフォルダを作成しようとしています。バッチでファイル名を可変に設定する

@echo off 
:loop 
if exist "C:\Input\*.mxf" (
for %%a in ("C:\Input\*.mxf") do (
C:\BMX\bmxtranswrap -o C:\Output\NEW.mxf -t as11op1a -y 09:59:50:00 --afd 10 --pass-anc all -anc-max 2048 "%%a" 
ping -n 5 localhost >nul 
del "%%a" 
) 
) 
ping -n 5 localhost >nul 
goto :loop 

私はもともと私が持っているCMDスクリプトで動作します名前を通過する%~n1コマンドを使用してみました。

C:\BMX\bmxtranswrap -o C:\Output\%~n1_NEW.mxf -t as11op1a -y 09:59:50:00 --afd 10 --pass-anc all -anc-max 2048 "%%a" 

これは機能しません。コマンドがある場合、私はソースファイル名を渡すために行方不明ですので、私に知らせてください。 多くのありがとうございます。

+0

'@echo ON' tで実行しましたo何が起こるか見る。コマンドの繰り返しを分析し、エラーを記録します。 – Stephan

答えて

0

新しい名前の変数として使用するには、拡張子を付けずにファイル名を抽出する必要があります。 使用できるファイル名を取得するには、次の

%%~ni 

これは動作するはずですが:

@echo off 
if exist "C:\Input\*.mxf" (
FOR %%i IN ("c:\Input\*.mxf") DO (
REM ECHO %%~ni - This is the filename without the extensoion for the new file 
C:\BMX\bmxtranswrap -o C:\Output\%%~ni_new.mxf -t as11op1a -y 09:59:50:00 --afd 10 --pass-anc all -anc-max 2048 %%i 
ping -n 5 localhost >nul 
del %%i 
) 
) 

注:私はbmxtranswrapラインと新しいファイル名なしで上記のコードをテストしてみた test_new.mxftest2_new.mxf

+0

こんにちは、ありがとう!だから%% iはフォルダ内の新しい入力を表し、%%〜niはその新しい入力(%% i)に基づく新しいファイル名です。私はそれを正しいとしましたか? –

関連する問題