2012-03-30 94 views
0

我想創建一個腳本來使用'發送到'菜單在Windows上轉換視頻。 爲此,我想從輸入文件中創建一個新文件名。 但我無法連接字符串。批處理文件:文件路徑操作

繼語法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 

我希望引號內的擴展不在外面!

有人能告訴我如何連接文件名和擴展名? 謝謝!

回答

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

刪除以前的擴展 使用

set outputfile="%~n1.MP4" 

,如果你不使用路徑名,或

set outputfile="%~dpn1.MP4" 

(名字將被轉換爲完整路徑)

+0

謝謝您這麼多,它的作品! – Plouff 2012-03-30 13:02:48

+0

順便說一下,是否有簡單的方法來改變輸入文件的擴展名。對我來說最好的解決方案是在'outputfile'中使用由'%1'的文件名組成的字符串,而不使用原始擴展名。謝謝! – Plouff 2012-03-30 13:10:34

+1

糾正了我的答案,以適應這一點。另外,第一個變體應該更簡單。 – 2012-03-30 14:27:14