【发布时间】:2022-08-10 21:21:31
【问题描述】:
我正在尝试创建一个批处理来重命名名称中包含“_”的所有子文件夹。 这适用但仅适用于 TEST 路径下的文件夹。
我如何也可以转到子文件夹?
示例 C:\\TEST\\name_TMP 结果是 C:\\TEST\\name
而是使用 C:\\TEST\\name\\name_TMP 脚本不起作用
@echo off
setlocal EnableDelayedExpansion
set \"SourceDir=C:\\TEST\\\"
FOR /d %%i IN (\"%SourceDir%\\*\") DO (
set \"FolderName=%%~nxi\"
if \"!FolderName:~-4,1!\"==\"_\" REN \"%%~i\" \"!FolderName:~0,-4!\"
)
endlocal
如果可能的话,也许只找到并删除 _TMP 部分
-
没有明确记录,但您可以将
/d(目录)开关与/r(递归)开关结合使用:for /d /r \"%sourcedir%\" %%i in (*) do echo %%i -
尝试
echo !foldername:_TMP=!(删除_TMP(不区分大小写))
标签: batch-file rename subdirectory