[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
回复 7# Batcher


    好了  目前还有一个小问题 就是 002文件夹中的人名
会有:徐勇  (无身份证)  之类的其他文字
我运行的时候 凡是带有其他文字的就没变
可以让这种 前面也加上对应代码不
麻烦了

TOP

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

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

TOP

回复 17# qixiaobin0715 比如说
徐勇  (无身份证)
二组王霄。
我想让他们的文件夹名变成610902117201jc00001徐勇  (无身份证)
                                                610902117201jc00054二组王霄
意思就是不管名字有没有带空格或者其他任何东西都可以添加上编号

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

回复 21# qixiaobin0715


    哦哦  实在是 如果可以发图就好了

TOP

回复 21# qixiaobin0715


    刚才运行了一下说语法命令错误

TOP

假设你的姓名都为2-3位的话,获取倒数的三个字符;且判断倒数第三个字符是否为a-z和0-9排除?再拼接
每日一问

TOP

这个纯体力活 要精确判断 就得降低效率啊 再说楼主讲的也不是很明白

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

返回列表