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

77,能不能麻烦你在添加一个小功能呢,就是我给排序这些文件名,如果有一两个是实际上是不存在的,就是空有文件名,而实际没有这个文件,也可以 忽视掉,直接合并。现在是如果文件夹少一个文件的话,就会提示无法合并。

TOP

本帖最后由 77七 于 2023-7-6 14:32 编辑

回复 16# feiyan


  1. @echo off
  2. rem 站内下载pdftk,修改为实际路径
  3. set "pdftk=C:\PDFtk\PDFtk\pdftk.exe"
  4. for /d %%d in (*) do (
  5. pushd "%%d"
  6. setlocal enabledelayedexpansion
  7. for %%a in (S*.pdf) do set "str=!str! "%%a""
  8. for %%a in ("D C F*.pdf") do set "str=!str! "%%a""
  9. for %%a in ("D C S*.pdf") do set "str=!str! "%%a""
  10. for /f "delims=" %%a in ('dir /b /a-d *.pdf ^|findstr /rvb /c:"S" /c:"D C F" /c:"D C S" /c:"D P" /c:"D F"') do (
  11. set "str=!str! "%%a""
  12. )
  13. for %%a in ("D P*.pdf") do set "str=!str! "%%a""
  14. for %%a in ("D F*.pdf") do set "str=!str! "%%a""
  15. "%pdftk%" !str! cat output "%%~nxd.pdf"
  16. move /y "%%~nxd.pdf" ..
  17. endlocal
  18. popd
  19. )
  20. pause
复制代码
bat小白,请多指教!谢谢!

TOP

回复 17# 77七
感谢77,想请你喝杯水,不知怎么操作

TOP

回复 18# feiyan

你的好意我心领了,谢谢。
bat小白,请多指教!谢谢!

TOP

回复 19# 77七
77, 能麻烦修改下参数,把合并后文件输出到当前目录下,不用放到文件夹内,而且,如果当前目录已经存在相同的文件名的话,直接覆盖掉。

TOP

回复 20# feiyan


   已在17楼修改。
bat小白,请多指教!谢谢!

TOP

回复 21# 77七

提示框显示移动了一个文件,实际上没有移动,合并后的文件还是在文件夹内部,没有到和这个文件夹相同的这个目录下,也就是到文件夹外面来

TOP

回复 22# feiyan


   16行末尾少写一个 .加上就行了。
bat小白,请多指教!谢谢!

TOP

好像不行。因为第5行pushd后,在popd前,点代表pushd后的路径。
16行的.换成"%~dp0"试试。包括引号额。

TOP

回复 24# qixiaobin0715

好像不行,提示系统找不到指定的文件

TOP

回复 23# 77七
试了下,提示:遇到错误,系统未能创建输出,

TOP

本帖最后由 77七 于 2023-7-6 14:33 编辑

回复 26# feiyan


   已编辑,现在直接复制17楼代码,试试
bat小白,请多指教!谢谢!

TOP

回复 27# 77七 [/b
非常感谢,我测试了一下,成功了,高手啊 :) :)

TOP

回复 27# 77七 hi 77,我发现合并后的pdf 文件没有书签,但是我手动合并的PDF 文件是有书签的,能否在程序中加上书签功能,就是合并后的pdf 文件自动带书签的。

TOP

回复 29# feiyan

我测试合并后是带书签的,先用以下代码把pdf文件处理一遍,再合并试试
  
  1. @echo off
  2. for %%a in (*.pdf) do (
  3. pdftk "%%a" cat output $.pdf
  4. pdftk "%%a" dump_data output report.txt
  5. pdftk $.pdf update_info report.txt output $1.pdf
  6. move $1.pdf "%%a"
  7. del $.pdf;report.txt
  8. )
  9. pause
复制代码
bat小白,请多指教!谢谢!

TOP

返回列表