如何批量重命名两个扩展名的文件?
How to batch rename files with two extensions?
我有一个文件转换工具,可以正确转换文件,但只是将所需的文件类型扩展名附加到旧文件名。
所以示例文件就像
文件 1.ext1.ext2
.
.
.
fileN.ext1.ext2
我认为这很容易修复 - 只需在 ren 命令上使用通配符即可。
例子:
ren \dir*.ext1.ext2 *.ext2
但输出仍然是 .ext1.ext2。我觉得我很接近。
有什么建议吗?我看到了使用 push 和 pop 的建议,但这些似乎没有必要。
谢谢!
* 通配符具有相当多的与 DOS 8.3 名称相关的兼容性处理等等。 How did copying and renaming with wildcards work in MS-DOS?
一种解决方法是在重命名操作中使用不带通配符的全名:
@echo off
REM test file:
echo.>> "file1.foo.bar"
REM remove foo extension:
for %%A in (*.foo.bar) do for /F "eol=? delims=" %%B in ("%%~dpnA") do @ren "%%~fA" "%%~nB%%~xA"
(如果不在批处理文件中,请将 %% 更改为 %)
我有一个文件转换工具,可以正确转换文件,但只是将所需的文件类型扩展名附加到旧文件名。 所以示例文件就像 文件 1.ext1.ext2 . . . fileN.ext1.ext2
我认为这很容易修复 - 只需在 ren 命令上使用通配符即可。 例子: ren \dir*.ext1.ext2 *.ext2
但输出仍然是 .ext1.ext2。我觉得我很接近。
有什么建议吗?我看到了使用 push 和 pop 的建议,但这些似乎没有必要。
谢谢!
* 通配符具有相当多的与 DOS 8.3 名称相关的兼容性处理等等。 How did copying and renaming with wildcards work in MS-DOS?
一种解决方法是在重命名操作中使用不带通配符的全名:
@echo off
REM test file:
echo.>> "file1.foo.bar"
REM remove foo extension:
for %%A in (*.foo.bar) do for /F "eol=? delims=" %%B in ("%%~dpnA") do @ren "%%~fA" "%%~nB%%~xA"
(如果不在批处理文件中,请将 %% 更改为 %)