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

回复 5# qd2024

本帖的关键是pdftk.exe要求加入 ‘包含中文标签’ 的设置文件须为utf-8编码(无BOM头标),其文件名似乎还须是单字节ascii字符
以下代码存为test.bat,放在 *.pdf,标签.txt,pdftk.exe 等文件同在的目录下运行,先用 "标签.txt" 生成 "BMu8.txt" ,再将其转码为无头标utf-8,最后调用pdftk生成 "*.new.pdf" 即为楼主所要...

  1. <# ::
  2. @echo off &if not exist "*.pdf" (exit/b) else if not exist "标签.txt" exit/b
  3. powershell "iex(${%~f0}|out-string)" &if not exist "BMu8.txt" exit/b
  4. for %%F in (*.pdf) do (set "pF=%%F"&set "_pF=%%~nF.new.pdf")
  5. pdftk.exe "%pF%" update_info_utf8 "BMu8.txt" output "%_pF%"
  6. del "BMu8.txt"&pause&exit/b
  7. #>
  8. $n=1; $s=foreach($l in gc "标签.txt") {
  9. echo("BookmarkBegin`nBookmarkTitle: "+$l+"`nBookmarkLevel: 1`nBookmarkPageNumber: "+($n++))
  10. }; [io.file]::writeAlllines("BMu8.txt", $s); exit
复制代码

TOP

本帖最后由 aloha20200628 于 2024-7-7 11:15 编辑

回复 7# qd2024

6楼代码已订正,再试试吧
确保运行时,当前目录中存在 ‘唯一’ 的目标文件 *.pdf 及其 "标签.txt" 和 pdftk.exe+libiconv2.dll 文件...
订正后的代码先检查 *.pdf 及其 “标签.txt” 是否存在,缺一者即退出...

TOP

回复 7# qd2024

按照7楼中的楼主约定方法,直接用6楼的代码处理其他的 *.pdf 及其 ‘标签.txt’,有何问题吗?

TOP

回复 23# 77七

直接在命令行上试试看结果 》if not exist "*.txt" (@echo,0) else @echo,1

TOP

回复 22# ppll2030

所谓7楼的楼主约定是 ‘我保证 与bat 标签.txt pdttk.exe 同级目录只有一个*.pdf’,此乃6楼代码被订正的依据...
utf-8编码的标签设置文件 ‘BMu8.txt’ 是6楼代码调用powershell功能从 ‘标签.txt’ 转码生成的,无须批处运行要求的 chcp 65001 和批处存为utf-8编码等操作...
所以还是希望楼主自己给21楼的问题一个回复...

TOP

本帖最后由 aloha20200628 于 2024-7-8 22:22 编辑

回复 26# 77七

谢了
哇塞 本想 if not exist "*.pdf" exit/b 和 if not exist "标签.txt" exit/b 两行并一行,反倒是给 *.pdf 轮空时钻了漏洞
须给6楼代码一个修复,已完成...

TOP

回复 7# qd2024

回复 22# ppll2030

所谓7楼的楼主约定是 ‘我保证 与bat 标签.txt pdttk.exe 同级目录只有一个*.pdf’,此乃6楼代码被订正的依据...
utf-8编码的标签设置文件 ‘BMu8.txt’ 是6楼代码调用powershell功能从 ‘标签.txt’ 转码生成的,无须批处运行要求的 chcp 65001 和批处存为utf-8编码等操作...
所以还是希望楼主自己给21楼的问题一个回复...

TOP

返回列表