gpt4 book ai didi

windows - cmd 批量重命名子文件夹/文件

转载 作者:可可西里 更新时间:2023-11-01 09:25:46 25 4
gpt4 key购买 nike

如何批量重命名文件夹 A 中的文件,其中包含子文件夹和具有此格式名称 filename_ex.doc 的文件,并使它们看起来像 filename.doc?

我已经尝试这样做一段时间了,但这是一次史诗般的失败。请帮忙。

最佳答案

我假设您也想重命名子文件夹中的文件,这就是您在对 Martin James 的第二条评论中的方向问题。我猜你用 DIR/S 选项试过那个代码。但你是如此接近 :-) 你只需要使用 2 个循环!

编辑 - 修复代码输出看起来正确后,删除 ECHO 以使其正常运行。

@echo off
for /r %%D in (.) do (
pushd "%%~fD"
for /f "tokens=1-3 delims=_." %%A in ('dir /b *_ex.ext 2^>nul') do echo ren "%%A_%%B.%%C" "%%A.%%C"
popd
)

只要每个文件名不包含任何 _.(_ex.ext 中出现的内容除外),上述内容就会起作用。路径中的字符应该没有任何问题,只是文件名是一个问题。

这是一个更强大的解决方案,适用于任何文件名(unicode 名称除外)。它也明显更快。它使用子字符串操作,您必须知道要从名称中删除的字符数。在您的示例中,它是 3 个字符。再次,一旦结果命令看起来正确,请删除 ECHO。

@echo off
setlocal disableDelayedExpansion
for /f "delims=" %%F in ('dir /b /s *_ex.ext') do (
set "old=%%F"
set "new=%%~nF"
setlocal enableDelayedExpansion
echo ren "!old!" "!new:~0,-3!.ext"
endlocal
)

关于windows - cmd 批量重命名子文件夹/文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10293450/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com