【问题标题】:Batch file that will eliminate second extension将消除第二个扩展名的批处理文件
【发布时间】:2014-10-07 19:46:19
【问题描述】:
我有一个文件夹,我想从中删除 SECOND 扩展名。我需要一个可以执行此操作的批处理文件:
-part1.prt.1
-sub-assembly.asm.3
-part2.prt.5
-part6.prt.3
这是我需要的:
-part1.prt
-sub-assembly.asm
-part2.prt
-part6.prt
【问题讨论】:
标签:
windows
batch-file
dos
【解决方案1】:
@ECHO OFF
SETLOCAL
SET "sourcedir=U:\sourcedir\t w o"
FOR %%a IN ("%sourcedir%\*") DO (
IF NOT "%%~xa"=="" FOR %%b IN ("%%~dpna") DO (
IF NOT "%%~xb"=="" ECHO(REN "%%~a" "%%~b"
)
)
GOTO :EOF
您需要更改sourcedir 的设置以适应您的情况。我使用U:\sourcedir\t w o 向自己证明它可以处理目录或文件名中的空格。
所需的 REN 命令仅用于测试目的ECHOed。 验证命令正确后,将ECHO(REN 更改为REN 以实际重命名文件。
【解决方案2】:
如果您知道所有文件都是这种 3 部分格式,那么您可以简单地使用:
ren *.* *.
这会删除最终的扩展名。所以会将“part1.prt.1”改为“part1.prt”,它也会将“other.1”更改为“other”,因此请确保这是您要对所有文件执行的操作。
一个巧妙的技巧,如果您要删除的所有扩展名都在正常的 3 个字符扩展名下 - 例如就像您似乎拥有的修订号一样。
ren *.?? *.
仅适用于 2 个字符或更少的扩展名