|
|
本帖最后由 youxianwei 于 2022-4-25 16:55 编辑
大神求助,如何子孙玄曾文件夹文件名批量搜索修改?
以下参考代码只能批量修改【子~文件夹名】[code]title 批量替换【子夹名】
echo.
set /p str1= 请输入替换前的【子夹名】的关键词(可替换空格):
set /p str2= 请输入替换后的【子夹名】的关键词(去除则直接回车):
echo.
echo 正在替换【子夹名】……
for /f "delims=" %%a in ('dir /b /ad') do (
set "str=%%a"
ren "%%a" "!str:%str1%=%str2%!"
)
以前版主的参考代码如下》
@echo off & setlocal enabledelayedexpansion
title 批量替换【子孙件夹名】
echo.
set /p str1= 请输入要替换【子孙件夹名】 的旧关键词(可替换空格):
set /p str2= 请输入替换后【子孙件夹名】 的新关键词(去除则直接回车):
echo.
echo 正在替换文件名。。。
for /f "delims=" %%a in ('dir /a-d /s /b') do (
if "%%~nxa" neq "%~nx0" (
set "f=%%~na"
set "f=!f:%str1%=%str2%!"
if not exist "%%~dpa!f!%%~xa" ren "%%a" "!f!%%~xa"
)
)
echo 替换文件名完成
echo 正在替换文件夹名。。。 【这段代码有个bug就是【新关键词】如果含【旧关键词】就会给【子孙夹】无限命名超长以致死机!!!】
set n=0
for /f "delims=" %%i in ('dir /ad /s /b ^|find "%str1%"') do (
set t=%%~ni
set t=!t:%str1%=%str2%!
if not exist "%%~dpi!t!" ren "%%i" "!t!" 2>nul
set /a n+=1
)
if "!n!" neq "0" goto folder
echo 替换文件夹名完成 |
|