2009-12-14 71 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. 

这应该这样做(最后的点是非常重要的“”)