找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 23756|回复: 11

[文件操作] 批处理如何【子孙玄曾~文件夹名】批量搜索修改?

[复制链接]
发表于 2022-4-24 20:11:24 | 显示全部楼层 |阅读模式
本帖最后由 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 替换文件夹名完成
发表于 2022-4-24 21:51:31 | 显示全部楼层
试试这样改
  1. ('dir /s /b /ad ^| sort /r')
复制代码
 楼主| 发表于 2022-4-25 09:35:01 | 显示全部楼层
回复 2# went


    测试没变化,感觉夹名比较难改,因为件相当于树枝的末端容易改,而夹相当于树枝的中端难改
发表于 2022-4-25 13:14:00 | 显示全部楼层
回复 3# youxianwei


    请把你测试用的最新bat脚本和目录结构上传到网盘我试试
发表于 2022-4-25 13:24:03 | 显示全部楼层
回复 1# youxianwei
7~8行改为:
  1. for /f "delims=" %%a in ('dir /b /s /ad ^| sort /r') do (
  2.     set "str=%%~nxa"
复制代码
 楼主| 发表于 2022-4-25 16:44:29 | 显示全部楼层
回复 4# Batcher


链接:https://pan.baidu.com/s/1JvXZ-Oi8WXNMydAhRg3vEw?pwd=uw9p
提取码:uw9p

感谢版主~
 楼主| 发表于 2022-4-25 16:56:48 | 显示全部楼层
回复 4# Batcher


感谢,我在论坛找到以前有版主解答的代码,不过运行发现一个bug,【新关键词】如果含【旧关键词】就会给【子孙夹】无限命名超长以致死机!!!,请问如何解决?应该是要统计子孙文件夹总数,确定循环次数,达到限制文件夹无限更名的问题吧?
以前版主的参考代码如下》
@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 替换文件夹名完成
 楼主| 发表于 2022-4-25 16:59:23 | 显示全部楼层

求版主解决以前版主【子孙夹件名】更名代码实践中的一个bug

求版主解决以前版主【子孙夹件名】代码实践中的一个bug███【这段代码有个bug就是【新关键词】如果含【旧关键词】就会给【子孙夹】无限命名超长以致死机!!!】███请问如何统计【子孙夹】总数限制循环次数,达到正确更名的目的???
@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 替换文件夹名完成
发表于 2022-4-25 17:27:49 | 显示全部楼层
回复 7# youxianwei


确认我写的代码?看风格不太像。有链接吗我确认一下。

【新关键词】如果含【旧关键词】是不是类似这样:
旧关键词是:游戏
新关键词是:游戏机
这样会导致代码出错是吗?
 楼主| 发表于 2022-4-25 17:39:56 | 显示全部楼层
本帖最后由 youxianwei 于 2022-4-25 17:43 编辑

回复 8# Batcher


    嗯,是这个现象,游戏机机机机机机机机机机机机机机机机机机机机机机机机机机。。。。
    是这个帖子里有类似答案http://www.bathome.net/viewthread.php?tid=34943&page=1
发表于 2022-4-25 18:53:15 | 显示全部楼层
回复 10# youxianwei


试过这个代码么?结果如何呢
http://bbs.bathome.net/thread-34943-1-1.html#pid165573
 楼主| 发表于 2022-4-25 19:23:23 | 显示全部楼层
本帖最后由 youxianwei 于 2022-4-25 19:55 编辑

回复 11# Batcher


    这段代码经测试只能改【子夹名+子件名】,【孙玄曾夹名+孙玄曾件名】没改

而我引用的那段代码如果【新关键词】不包含【旧关键词】能全改,当包含的时候就在【子夹名】上无限循环卡住了,【游戏机机机机机机机机机机机机机机机机机机夹】
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-20 03:12 , Processed in 0.019977 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表