2009-12-14 73 views
1

CMD問:我想刪除文件名的擴展名。擺脫變量擴展(CMD)

它實際上是一個完整的路徑,如C:/Me/My/Path/filename.xxxx

我知道,延伸部具有4個字符,如示出的示例中的上方。

我該如何擺脫擴展名?

謝謝。

回答

3

在終端:

set file=C:/Me/My/Path/filename.1234 
for /F "tokens=*" %A IN ("%file%") DO @echo variable ^%file^%: %~dpnA 

在批處理文件:

@echo off 
set file=C:/Me/My/Path/filename.1234 
echo If called with path as batch parameter: %~dpn1 
for /F "tokens=*" %%A IN ("%file%") DO echo variable %%file%%: %%~dpnA 
+0

有兩個問題:(。),這是否也刪除了點?和:我如何刪除三(123)? – 2009-12-14 16:32:31

+0

和:這隻會改變我的變量,還是我不得不添加一些東西使其成爲一個變量? – 2009-12-14 16:33:22

+0

你看到4硬編碼的任何地方?它刪除了最後一個。和之後的一切。它不會改變變量,改變它,用'set filenew = %%〜dpnA'設置 – Anders 2009-12-14 16:41:04

1

這是卓有成效:

@echo off 
set fullpath= C:/Me/My/Path/filename.xxxx 
set withoutext=%fullpath:~0,-5% 
echo %withoutext% 

結果是:

c:\>test 
C:/Me/My/Path/filename 

在此示例腳本中,最後5個字符將從變量%fullpath%中刪除。

的語法如下解釋:http://www.computerhope.com/forum/index.php?topic=78901.0

如遇有延伸的長度未知的,這是行不通的。

1
ren C:/Me/My/Path/filename.xxxx filename. 

這應該這樣做(最後的點是非常重要的「」)