2012-03-30 12 views
0

「送信」メニューを使用してウィンドウ上のビデオを変換するための小さなスクリプトを作成しようとしています。 これは入力ファイルから新しいファイル名を作成したいのですが。 しかし、私は文字列を連結することができません。バッチファイル:ファイルパスの操作

は構文found here後、私は、コードのこの作品を書いた:

@echo Input: 
@echo %1 
set "outputfile=%1%.MP4" 
@echo %outputfile% 

をしかし、私はOUTPUTFILEで引用符に問題がある:

Input: 
"D:\this is a test\MVI_7754.AVI" 

D:\this is a test>set "outputfile="D:\this is a test\MVI_7754.AVI".MP4" 
"D:\this is a test\MVI_7754.AVI".MP4 

私は引用符内部の拡張を期待します外ではない!

ファイル名と拡張子をどのように連結することができますか? ありがとう!あなたはパス名または

set outputfile="%~dpn1.MP4" 

を使用しない場合は、以前の拡張 使用に

set outputfile="%~n1.MP4" 

を削除する

答えて

3
@echo Input: 
@echo %1 
set outputfile="%~1.MP4" 
@echo %outputfile% 

(名前はフルパスに変換されます)

+0

ありがとうございますそんなに、それは動作します! – Plouff

+0

ところで、入力ファイルの拡張子を変更する簡単な方法があります。私の最善の解決策は '%1'のファイル名からなる文字列を元の拡張子なしで' outputfile'に入れることです。ありがとう! – Plouff

+1

はそれに対応するために私の答えを修正しました。また、最初の変種はずっと簡単です。 –