[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
好像不行。因为第5行pushd后,在popd前,点代表pushd后的路径。
16行的.换成"%~dp0"试试。包括引号额。

TOP

回复 22# feiyan


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

TOP

回复 21# 77七

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

TOP

回复 20# feiyan


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

TOP

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

TOP

回复 18# feiyan

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

TOP

回复 17# 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

回复 14# 77七

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

TOP

回复 14# 77七
感谢77.

TOP

回复 13# 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 /f "delims=" %%a in ('dir /b /a-d *.pdf ^|findstr /vbc:"S" /vbc:"D C F" /vbc:"D C S" /vbc:"D P" /vbc:"D F"') do (
  8. set "str=!str! "%%a""
  9. )
  10. "%pdftk%" "S*.pdf" "D C F*.pdf" "D C S*.pdf" !str! "D P*.pdf" "D F*.pdf" cat output "%~dp0%%~nxd.pdf"
  11. endlocal
  12. popd
  13. if exist "%%~nxd.pdf" (
  14. move "%%~nxd.pdf" "%%d"
  15. )
  16. )
  17. pause
复制代码
bat小白,请多指教!谢谢!

TOP

回复 2# 77七


    @77七  77你好,是这样的,这个我用这个代码尝试下,发现最后会多合并几个文件进去,就是之前已经被定义顺序的这几个文件,也就是在( !str! )之前的几个文件名,最后还是会被重复合并到整个文件中。

TOP

回复 9# 77七
是我失误了,我把这个批处理放在文件夹里面了,所以一直不成功,放在外面就OK 了,感谢

TOP

回复 10# Batcher
感谢,是我失误了,我把这个批处理放在这个文件夹里面,难怪一直不成功,放在外面就OK了

TOP

回复 8# feiyan


请参考Q-04把bat文件保存为ANSI编码:
https://mp.weixin.qq.com/s/Koje4FufWxWBs7ioDy_LJA
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

返回列表