吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1628|回复: 26
收起左侧

[其他原创] 【批处理】自动根据pdf文件名批量自动合并pdf(可选页码交叉、不交叉)V2.0

[复制链接]
二零一八小王子 发表于 2024-8-30 19:02
本帖最后由 二零一八小王子 于 2024-9-1 15:09 编辑

使用方法:
拖动一个文件夹到【批处理自动【直接合并】同名PDF文件名】.bat文件上面,根据提示输入2个选项就行。



应用场景1--------(合并前缀相同后面变换,即去掉后面字符):
合并这种末尾变化的情况,文件格式是
S1 好好学习-01.pdf
S1 好好学习-02.pdf
S1 好好学习-03.pdf
S2 天天向上-01.pdf
S2 天天向上-02.pdf

动态末尾字符数据输入是   3
==================
合并结果:
S1 好好学习.pdf
S2 天天向上.pdf

==================================================

应用场景2-----------------(合并前缀变换后面固定,去掉前面比如2个字符)

1-天天向上.pdf
2-天天向上.pdf
3-天天向上.pdf

输入前面占位字符是2个

==================
合并结果:
天天向上.pdf


======================
image.png
================
[Bash shell] 纯文本查看 复制代码
@echo off
setlocal enabledelayedexpansion

 

rem 提供用户三个选项
echo 请选择操作类型:
echo 1. 合并前缀相同后面变换的PDF文件(去除后缀的字符数)
echo 2. 合并前缀变换后面固定的PDF文件(去除前缀的字符数)

set /p "choice=请输入你的选择 (1/2): "

rem 检查是否拖拽了文件夹
if "%~1"=="" (
    echo 请将一个文件夹拖拽到此批处理文件上进行处理。
    pause
    exit /b
)

set "target_folder=%~1"

rem 根据用户选择操作
if "%choice%"=="1" (
    call :MergeByPrefix
) else if "%choice%"=="2" (
    call :MergeBySuffix
) else if "%choice%"=="3" (
    call :MergeByBoth
) else (
    echo 无效的选择,请重新运行程序。
    exit /b
)

pause
exit /b

:MergeByPrefix
rem 处理前缀相同的文件
set "default_trim_length=1"
set /p "trim_length=请输入动态变量末尾占位字符数(默认值为 %default_trim_length% ): "
if "%trim_length%"=="" set "trim_length=%default_trim_length%"

set "merged_dir=%target_folder%\merged_pdfs"
mkdir "%merged_dir%" 2>nul
set "processed_files="
set count=0
for %%F in ("%target_folder%\*.pdf") do (
    set /a count+=1
    echo 正在处理第: !count!个pdf
    set "filename=%%~nF"
    set "prefix=!filename:~0,-%trim_length%!"
    echo !processed_files! | findstr /c:"!prefix!," >nul
    if errorlevel 1 (
        set "file_list="
        for %%G in ("%target_folder%\!prefix!*".pdf) do (
            if defined file_list (
                set "file_list=!file_list! "%%G""
            ) else (
                set "file_list="%%G""
            )
        )
        if defined file_list (
            pdftk !file_list! cat output "%merged_dir%\!prefix!.pdf"
        )
        set "processed_files=!processed_files!!prefix!,"
    )
)
echo 处理完成,文件在%merged_dir%文件夹下面
goto :EOF

:MergeBySuffix
rem 处理后缀相同的文件
set "default_trim_length=1"
set /p "trim_length=请输入动态变量前缀字符数占位(默认值为 %default_trim_length% ): "
if "%trim_length%"=="" set "trim_length=%default_trim_length%"

set "merged_dir=%target_folder%\merged_pdfs"
mkdir "%merged_dir%" 2>nul
set "processed_files="
set count=0
for %%F in ("%target_folder%\*.pdf") do (
    set /a count+=1
    echo 正在处理第: !count!个pdf
    set "filename=%%~nF"
    set "suffix=!filename:~%trim_length%!"
    echo !processed_files! | findstr /c:"!suffix!," >nul
    if errorlevel 1 (
        set "file_list="
        for %%G in ("%target_folder%\*"!suffix!".pdf") do (
            if defined file_list (
                set "file_list=!file_list! "%%G""
            ) else (
                set "file_list="%%G""
            )
        )
        if defined file_list (
            pdftk !file_list! cat output "%merged_dir%\!suffix!.pdf"
        )
        set "processed_files=!processed_files!!suffix!,"
    )
)
echo 处理完成,文件在%merged_dir%文件夹下面
goto :EOF
 



=============
下载地址https://wwnb.lanzoul.com/b02sez3h9a
密码:2e5h

免费评分

参与人数 9吾爱币 +13 热心值 +8 收起 理由
Lange1868 + 1 + 1 谢谢@Thanks!
苏紫方璇 + 7 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
yanglinman + 1 谢谢@Thanks!
yzzq699 + 1 <font data-immersive-translate-effect="1" data-immersive-
qiaoyong + 1 + 1 热心回复!
lgc81034 + 1 谢谢@Thanks!
拍拍熊 + 1 + 1 谢谢@Thanks!
TADYCB + 1 + 1 我很赞同!
supernox + 1 + 1 楼主很厉害啊~~~

查看全部评分

本帖被以下淘专辑推荐:

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

lijiaqing 发表于 2024-8-30 19:43
quicker有个现成的,只是想转成单个的exe,能直接文件拖上去就行的,LZ能否出手,谢谢
https://getquicker.net/Sharedaction?code=06085b7f-93e0-4dd8-3be5-08d97b88c89f
460864734 发表于 2024-11-22 16:57
请选择操作类型:
1. 合并前缀相同后面变换的PDF文件(去除后缀的字符数)
2. 合并前缀变换后面固定的PDF文件(去除前缀的字符数)
请输入你的选择 (1/2): 2
请输入动态变量前缀字符数占位(默认值为 1 ): 3
正在处理第: 1个pdf
'pdftk' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
正在处理第: 2个pdf
正在处理第: 3个pdf
正在处理第: 4个pdf
正在处理第: 5个pdf
正在处理第: 6个pdf
正在处理第: 7个pdf
'pdftk' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
正在处理第: 8个pdf
supernox 发表于 2024-8-30 19:23
TADYCB 发表于 2024-8-30 19:30
感谢分享
lijiaqing 发表于 2024-8-30 19:37
LZ能不能用文件名自动给PDF加水印啊!位置顶上居中
lzspain 发表于 2024-8-30 20:02
晚上这版,是更新了什么呢?
 楼主| 二零一八小王子 发表于 2024-8-30 20:12
lzspain 发表于 2024-8-30 20:02
晚上这版,是更新了什么呢?

没有,在精品软件区发的时候被版主删除了,版主认为是相同类型必须合并,,所以在这里发了。
 楼主| 二零一八小王子 发表于 2024-8-30 20:16
lijiaqing 发表于 2024-8-30 19:43
quicker有个现成的,只是想转成单个的exe,能直接文件拖上去就行的,LZ能否出手,谢谢
https://getquicker. ...

你好 有空试试吧 好像不容易
lijiaqing 发表于 2024-8-30 20:40
希望许愿成功,期待LZ出手!
01z8z0 发表于 2024-8-30 21:18
感谢分享
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-12-13 01:01

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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