Board logo

标题: [文件操作] [已解决]批处理怎样根据文件夹名重命名文件夹内的文件? [打印本页]

作者: useinter    时间: 2018-6-13 10:59     标题: [已解决]批处理怎样根据文件夹名重命名文件夹内的文件?

本帖最后由 useinter 于 2018-6-17 20:03 编辑

      大家好:
      事情是这样的。
      网上下了一堆小说,解压完成发现一万多本小说都是在每个文件夹内,文件夹是小说名,但是里面的小说是数字或者乱码。
      需要根据文件夹名重命名文件夹内的小说,如果文件夹内超过一个文件就不重命名(这样的基本就是好几卷,可以不用重命名)。
      不知道各位大拿能否写个脚本,搜索没找到这样的脚本。
      十分感谢!


      已经完成,感谢楼下两位仁兄,端午节快乐,祝好!
作者: yhcfsr    时间: 2018-6-13 12:51

  1. @echo off&setlocal
  2. cd/d "d:\1W本小说"
  3. for /r /d %%a in (*) do call :lp "%%a"
  4. endlocal&pause&goto:eof
  5. :lp
  6. setlocal
  7. pushd "%~1"
  8. dir|find "1 个文件">nul||(goto:end)
  9. for /f "delims=" %%a in ("%~1") do set "name=%%~nxa"
  10. for /f "delims=" %%a in ('dir /a-d/b') do ren "%%a" "%name%%%~xa"
  11. :end
  12. popd
  13. endlocal&goto:eof
复制代码

作者: Batcher    时间: 2018-6-13 13:06

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set "FolderPosition=C:\Test\一万多本小说"
  4. if not exist "%FolderPosition%\" (
  5.     goto :eof
  6. )
  7. cd /d "%FolderPosition%"
  8. for /d %%a in (*) do (
  9.     set n=1
  10.     for /f "delims=" %%b in ('dir /b /a-d "%%a"') do (
  11.         ren "%%a\%%b" "%%a_!n!%%~xb"
  12.         set /a n+=1
  13.     )
  14. )
复制代码

作者: useinter    时间: 2018-6-14 08:31

本帖最后由 useinter 于 2018-6-17 19:59 编辑

回复 2# yhcfsr


    yhcfsr兄,感谢回复。复制了几个文件夹测试,发现仁兄的脚本可以重命名,好棒,不过,脚本显示的却是:系统找不到指定路径,请按任意键继续。不知道是不是我为了测试在桌面临时建立文件夹的原因。不过,脚本却是是可以完成重命名的。
作者: useinter    时间: 2018-6-14 08:33

回复 3# Batcher


    感谢Batcher兄的回复,经过测试,仁兄给出的脚本执行完自动退出,但是没有任何效果,是了好几次都是,不知道是哪里的问题。不知道是不是路径的问题。感谢仁兄的回复。
作者: Batcher    时间: 2018-6-14 10:59

回复 5# useinter


代码里面的 @echo off 删掉
保存为 C:\test.bat
打开一个CMD窗口,执行命令:
C:\test.bat

这样可以看到详细的报错信息或者线索
作者: useinter    时间: 2018-6-17 20:01

回复 6# Batcher


    感谢回复。过节回家,没带电脑,之前测试的时候好像就是路径问题,我不动脚本,照样子摸索调整了下脚本,可以用。已经用上一个脚本完成了重命名。十分感谢,端午节快乐,祝好!




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2