[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
一会是文件一会是文件夹,你的表述好乱啊,都给你搞晕了。tree一下,截图上来,大家都清楚了。

TOP

本帖最后由 qixiaobin0715 于 2021-1-6 14:51 编辑

回复 6# k员外
刚刚有点小问题,已修改。
未测试,小批量试一试。如果需要改名的文件夹路径是forder1,参照文件夹路径forder2。先说明的是:不是太精确。
  1. @echo off
  2. set folder1=D:\abc
  3. set folder2=D:\123
  4. for /d %%a in ("%folder1%\*") do (
  5.     for /d %%b in ("%folder2%\*%%~na") do ren "%%a" "%%~nb"
  6. )
  7. pause
复制代码

TOP

真是和你说不清,这样:先在D盘根目录下创建abc和123两个文件夹,将左边的文件夹放到abc文件夹里,右边放到123文件夹里,运行代码试试看。

TOP

本帖最后由 qixiaobin0715 于 2021-1-7 13:51 编辑

回复 16# k员外
人名后是一个还是两个空格,是中文还是英文括号,对应的001的文件夹名是什么样的,重命名成什么样?举例

TOP

回复 18# k员外
未经测试
  1. @echo off
  2. set folder1=D:\abc
  3. set folder2=D:\123
  4. setlocal enabledelayedexpansion
  5. for /d %%a in ("%folder2%\*") do (
  6.     set "str=%%a"
  7.     set "str1=!str:~0,19!"
  8.     set "str2=!str:~19!"
  9.     for /d %%b in ("%folder1%\*!str2!*") do ren "%%b" "!str1!%%~nb"
  10. )
  11. pause
复制代码

TOP

不精确。如果有人名:李双和李双双,就会出问题。

TOP

实际上8楼代码特殊情况也会有问题。例如人名有:李双双和双双

TOP

回复 23# k员外
你举的两个例子:
徐勇  (无身份证)
二组王霄
前一个可能能够实现,就像terse说的那样要牺牲效率。
第二个几乎是不能完成的任务,电脑怎能判断“二组王霄”中“王霄”是人名呢?
建议使用7楼Batcher的代码处理后,特例应当不多,也好找排序就行,手工修改。

TOP

本帖最后由 qixiaobin0715 于 2021-1-7 22:42 编辑

回复 23# k员外
再试试,不行的话,我放弃
人名文件夹放在这D:\abc
带编码的文件夹放在这D:\123
  1. @echo off
  2. set folder1=D:\abc
  3. set folder2=D:\123
  4. setlocal enabledelayedexpansion
  5. for /d %%a in ("%folder2%\*") do (
  6.     set "str=%%~na"
  7.     set "str1=!str:~0,19!"
  8.     set "str2=!str:~19!"
  9.     for /f "delims=" %%b in ('dir /b /ad "%folder1%\*!str2!*"') do ren "%folder1%\%%b" "!str1!%%b"
  10. )
  11. pause
复制代码

TOP

返回列表