2012-03-30 5 views
0

Ich versuche, ein kleines Skript zu erstellen, um Video über Windows zu konvertieren, indem Sie das Menü "Senden an" verwenden. Dazu möchte ich einen neuen Dateinamen aus dem Eingang erstellen. Aber ich versäume Strings zu verketten.Batch-Datei: Dateipfad-Manipulation

Nach der Syntax found here, schrieb ich dieses Stück Code:

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

Aber ich habe ein Problem mit den Anführungszeichen in der Ausgabedatei:

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 

ich innerhalb der Anführungszeichen die Erweiterung erwarten nicht draußen!

Könnte mir jemand sagen, wie ich den Dateinamen und die Erweiterung verketten kann? Danke!

Antwort

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

vorherige Erweiterung Verwendung

set outputfile="%~n1.MP4" 

zu entfernen, wenn Sie oder

set outputfile="%~dpn1.MP4" 

(Name vollständigen Pfad umgewandelt werden) keine Pfadnamen verwenden

+0

Dank Sie So viel, es funktioniert! – Plouff

+0

BTW, gibt es eine einfache Möglichkeit, die Erweiterung der Eingabedatei zu ändern. Die beste Lösung für mich wäre, in der Ausgabedatei die Zeichenfolge zu haben, die sich aus dem Dateinamen "% 1" ohne die ursprüngliche Erweiterung zusammensetzt. Vielen Dank! – Plouff

+1

korrigierte meine Antwort, um das zu empfangen. Auch sollte die erste Variante viel einfacher sein. –

Verwandte Themen