标题: [文件操作] [已解决]批处理怎样根据文件夹名重命名文件夹内的文件? [打印本页]
作者: useinter 时间: 2018-6-13 10:59 标题: [已解决]批处理怎样根据文件夹名重命名文件夹内的文件?
本帖最后由 useinter 于 2018-6-17 20:03 编辑
大家好:
事情是这样的。
网上下了一堆小说,解压完成发现一万多本小说都是在每个文件夹内,文件夹是小说名,但是里面的小说是数字或者乱码。
需要根据文件夹名重命名文件夹内的小说,如果文件夹内超过一个文件就不重命名(这样的基本就是好几卷,可以不用重命名)。
不知道各位大拿能否写个脚本,搜索没找到这样的脚本。
十分感谢!
已经完成,感谢楼下两位仁兄,端午节快乐,祝好!
作者: yhcfsr 时间: 2018-6-13 12:51
- @echo off&setlocal
-
- cd/d "d:\1W本小说"
-
- for /r /d %%a in (*) do call :lp "%%a"
- endlocal&pause&goto:eof
-
- :lp
- setlocal
- pushd "%~1"
- dir|find "1 个文件">nul||(goto:end)
- for /f "delims=" %%a in ("%~1") do set "name=%%~nxa"
- for /f "delims=" %%a in ('dir /a-d/b') do ren "%%a" "%name%%%~xa"
- :end
- popd
- endlocal&goto:eof
复制代码
作者: Batcher 时间: 2018-6-13 13:06
- @echo off
- setlocal enabledelayedexpansion
- set "FolderPosition=C:\Test\一万多本小说"
- if not exist "%FolderPosition%\" (
- goto :eof
- )
- cd /d "%FolderPosition%"
- for /d %%a in (*) do (
- set n=1
- for /f "delims=" %%b in ('dir /b /a-d "%%a"') do (
- ren "%%a\%%b" "%%a_!n!%%~xb"
- set /a n+=1
- )
- )
复制代码
作者: 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 |