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

[文件操作] [已解决]利用批处理整理漫画图片,并生成pdf

本帖最后由 autoav 于 2021-12-21 13:39 编辑

F盘下面,比如有A、B、C三个漫画文件夹,每个文件夹下面有01,02,03...12对应月份文件夹,每个月份有01,02,03三个子文件夹,每个子文件夹里面有001.jpg,002.jpg,003.jpg漫画文件。
我最终的目的,是将A、B、C三个漫画文件夹里,只有01,02,03...12总共12个pdf文件。
第一步:把所有子文件夹删掉,以【子文件夹-文件名】的方式存放到月份文件夹中,我写了一个批处理命令,可以将子文件夹名加上文件名作为新的文件名,移动到本文件夹,这个bat文件放到月份文件夹执行是可以的,但是要如何嵌套呢?我想把bat文件放到F盘执行,使之覆盖所有文件。
        for /d %%a in (*) do (
                    for %%i in (%%a\*.*) do (
                        move "%%i" "%%a-%%~nxi"
                            )
                    rd %%a
        )

回复 1# autoav
  1. @echo off
  2. cd /d "F:\"
  3. for %%i in (A B C) do (
  4.     pushd "%%i"
  5.     for /d %%j in (*) do (
  6.         pushd "%%j"
  7.         for /d %%a in (*) do (
  8.             for %%i in (%%a\*.*) do (
  9.                 move "%%i" "%%a-%%~nxi"
  10.             )
  11.             rd "%%a"
  12.         )
  13.         popd
  14.     )
  15.     popd
  16. )
复制代码
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

本帖最后由 qixiaobin0715 于 2021-12-21 09:54 编辑

没说清楚,疑问:
pdf文件是在哪个或哪些文件夹中,要移动到哪里?

TOP

本帖最后由 qixiaobin0715 于 2021-12-21 12:20 编辑

如果只处理jpg文件的话,这样也可以:
  1. @echo off
  2. for /f "delims=" %%a in ('dir /s /b /ad A B C') do (
  3.     if exist "%%a\*.jpg" (
  4.         pushd "%%a"
  5.         for /f "delims=" %%i in ('dir /b /a-d *.jpg') do (
  6.             move "%%i" "%%~dpi..\%%~na-%%i"
  7.         )
  8.         popd
  9.         rd "%%a"
  10.     )
  11. )
  12. pause
复制代码
代码未测试

TOP

没说清楚,疑问:
pdf文件是在哪个或哪些文件夹中,要移动到哪里?
qixiaobin0715 发表于 2021-12-21 09:21



我就是先要把jpg文件整理好,最后再生成pdf文件,这一步已经没问题,主要还是整理jpg的问题

TOP

最后的代码如下,使用软件FreePic2Pdf,可以将文件夹内的所有图像文件生成一个pdf文件,并以该文件夹命名
1、先去掉月份文件夹里存在的上中下,改为1,2,3。
2、将存在1,2,3这一级目录的删除,并在对应的文件名前加上123,使之按照顺序排列。
3、使用FreePic2Pdf,生成对应月份的pdf文件

@echo off
rem 将最后一级子目录存在的上中下替换为123
for /f "delims=" %%a in ('dir /b /s /ad ') do (
if exist "%%a\上\" ren "%%a\上\" "1"
if exist "%%a\中\" ren "%%a\中\" "2"
if exist "%%a\下\" ren "%%a\下\" "3"
)
rem 将有多级存在的子目录往前移一层
for /d %%i in (*) do (
        pushd "%%i"
        for /d %%j in (*) do (
                if not exist "%%j\*.jpg" (
                        pushd "%%j"
                        for /d %%a in (*) do (
                                    for %%i in (%%a\*.*) do (
                                        move "%%i" "%%a%%~nxi"
                            )
                            rd "%%a"
                        )
                        popd
                )
        )
        popd
)

TOP

回复 4# qixiaobin0715


    代码测试可用,谢谢!

TOP

回复 2# Batcher


    代码测试可用,我按照自己的需求,改了部分代码,谢谢!

TOP

返回列表