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

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

本帖最后由 zytedwards 于 2012-11-12 13:36 编辑

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

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

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

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

是我的问题太无聊了吗。。

TOP

试试
  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
复制代码

TOP

可能我说的不太对。。
其实就是对于“周杰伦 - 神曲.mp3”这种,发现有“杰伦”这两个字,就对这个文件添加前缀a,改成"a周杰伦 - 神曲.mp3";
如果是“往期资料.doc”,发现有"资料"两个字,就把这个文件改成"b往期资料.doc"

TOP

  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
复制代码
我自己在网上找了改改,发现说命令不正确。。郁闷中 求指导

TOP

回复 4# zytedwards


    被你说糊涂了呢。。。到底是搜索磁盘文件并改名,还是根据列表复制并改名?
刚测试了可以根据列表复制文件并根据关键字改名的,可能你的列表文件格式不一样?我测试a.txt像这样:
D:\金曲\依然爱你-王力宏.mp3
D:\金曲\等爱的玫瑰-凤凰传奇.mp3
关键字:力宏、凤凰

TOP

回复 6# apang


    呃。。。其实我一开始那个代码是把文件复制出来的,复制完之后就要对那些文件进行重命名
    所以实际上就是对于某一个文件夹像是E:\a搜索文件进行重命名 不好意思没讲清楚。。

TOP

回复 7# zytedwards


    晕死~~
顶楼的意思不就是要求在原代码上增加重命名的功能吗?否则,你在顶楼贴出代码有何意义?
如果仅仅是重命名,就不要贴出那代码,把人往沟里引。。。

TOP

回复 8# apang


    我错了大神。。我把那段东西删掉吧

TOP

回复 9# zytedwards


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

评分人数

TOP

回复 10# apang


    已经解决了,谢谢!

TOP

返回列表