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

[文件操作] [已解决]批处理对含有特定中文关键词的文件添加前缀

[复制链接]
发表于 2012-11-10 22:12:46 | 显示全部楼层 |阅读模式
本帖最后由 zytedwards 于 2012-11-12 13:36 编辑

我想要对搜索出来的文件按关键词添加前缀,如
周杰伦 - 神曲.mp3  →  含有“周杰伦”三个字  →  a周杰伦 - 神曲.mp3
关于周杰伦的电影.rmvb  →  含有“周杰伦”三个字  →  a关于周杰伦的电影.rmvb

谢霆锋 - 神曲.mp3  →  含有“谢霆锋”三个字  →  b周杰伦 - 神曲.mp3
关于谢霆锋的电影.rmvb  →  含有“谢霆锋”三个字  →  b关于谢霆锋的电影.rmvb

就是如果有某个关键词,文件名就加个前缀。。我REN了半天搞不定,故求助各位..

评分

参与人数 1PB +2 收起 理由
Batcher + 2 感谢给帖子标题标注[已解决]字样

查看全部评分

 楼主| 发表于 2012-11-11 11:40:50 | 显示全部楼层
是我的问题太无聊了吗。。
发表于 2012-11-11 15:00:57 | 显示全部楼层
试试
  1. @echo off
  2. set today=%date:~0,4%-%date:~5,2%-%date:~8,2%
  3. md "C:\%today%" 2>nul
  4. set "_周杰伦=a"
  5. set "_谢霆锋=b"
  6. set "_林依伦=c"
  7. for /f "delims=" %%a in (a.txt) do (
  8.   set "Pth=%%~fa"
  9.   set "Name=%%~nxa"
  10.   setlocal enabledelayedexpansion
  11.   if exist "!Pth!" (
  12.     for %%b in (周杰伦 谢霆锋 林依伦) do (
  13.       if "!Name:%%b=!" neq "!Name!" (
  14.         for %%c in (!_%%b!) do copy "!Pth!" "C:\%today%\%%c!Name!"
  15.         set F=1
  16.       )
  17.     )
  18.     if not defined F copy "!Pth!" "C:\%today%\!Name!"
  19.   ) else echo,!Name!>>b.txt
  20.   endlocal
  21. )
  22. pause
复制代码
 楼主| 发表于 2012-11-11 23:40:56 | 显示全部楼层
可能我说的不太对。。
其实就是对于“周杰伦 - 神曲.mp3”这种,发现有“杰伦”这两个字,就对这个文件添加前缀a,改成"a周杰伦 - 神曲.mp3";
如果是“往期资料.doc”,发现有"资料"两个字,就把这个文件改成"b往期资料.doc"
 楼主| 发表于 2012-11-11 23:56:27 | 显示全部楼层
  1. @echo off
  2. set k=杰伦
  3. set m=资料
  4. set path=E:\

  5. for /f "delims=" %%i in ('dir /s/a-d/b %path%*%k%*') do (
  6. ren "%%i" "a_%%i")

  7. for /f "delims=" %%b in ('dir /s/a-d/b %path%*%m%*') do (
  8. ren "%%b" "b_%%b")

  9. pause
复制代码
我自己在网上找了改改,发现说命令不正确。。郁闷中 求指导
发表于 2012-11-12 00:51:20 | 显示全部楼层
回复 4# zytedwards


    被你说糊涂了呢。。。到底是搜索磁盘文件并改名,还是根据列表复制并改名?
刚测试了可以根据列表复制文件并根据关键字改名的,可能你的列表文件格式不一样?我测试a.txt像这样:
D:\金曲\依然爱你-王力宏.mp3
D:\金曲\等爱的玫瑰-凤凰传奇.mp3
关键字:力宏、凤凰
 楼主| 发表于 2012-11-12 08:01:10 | 显示全部楼层
回复 6# apang


    呃。。。其实我一开始那个代码是把文件复制出来的,复制完之后就要对那些文件进行重命名
    所以实际上就是对于某一个文件夹像是E:\a搜索文件进行重命名 不好意思没讲清楚。。
发表于 2012-11-12 11:02:32 | 显示全部楼层
回复 7# zytedwards


    晕死~~
顶楼的意思不就是要求在原代码上增加重命名的功能吗?否则,你在顶楼贴出代码有何意义?
如果仅仅是重命名,就不要贴出那代码,把人往沟里引。。。
 楼主| 发表于 2012-11-12 11:19:18 | 显示全部楼层
回复 8# apang


    我错了大神。。我把那段东西删掉吧
发表于 2012-11-12 12:13:00 | 显示全部楼层
回复 9# zytedwards


    5楼代码:
第7行:ren "%%i" "a_%%~nxi")
第10行:ren "%%b" "b_%%~nxb")

评分

参与人数 1技术 +1 收起 理由
Batcher + 1 乐于助人

查看全部评分

 楼主| 发表于 2012-11-12 13:36:23 | 显示全部楼层
回复 10# apang


    已经解决了,谢谢!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2026-3-19 18:12 , Processed in 0.022963 second(s), 9 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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