Board logo

标题: [已结]如何用批处理实现批量打印某个文件夹下的所有pdf文件 [打印本页]

作者: unique009     时间: 2005-11-7 10:40    标题: [已结]如何用批处理实现批量打印某个文件夹下的所有pdf文件

求助:如何用批处理实现批量打印某个文件夹下的所有pdf文件?


另:电脑是windows2000 sp4  
局域网
网络打印机,通过打印服务器连接


请教各位路过的达人们,有办法吗?

[ Last edited by unique009 on 2005-11-8 at 13:43 ]
作者: JonePeng     时间: 2005-11-7 12:44
在我的电脑里全选所有pdf文件,单击鼠标右键,按“打印(Print)”。
作者: unique009     时间: 2005-11-7 13:21
这个...这个...方法是可以
但是我想要实现的功能是这样的
1.制作一个批处理,并在文件夹右键加入这个bat文件的快捷方式如"打印所有pdf文件"
2.当选中某个文件夹并右键单击"打印所有pdf文件"时,打印此目录下的所有pdf文件,然后在此文件夹中以当天时间再建一个子文件夹,并将所有已打印过的pdf文件移入此文件夹内

不知能否实现此功能
目前主要对于“批处理实现批量打印某个文件夹下的所有pdf文件”这一点不知该怎么办

感谢回复!
作者: JonePeng     时间: 2005-11-7 22:36
对第一个问题,创建一个批处理文件 Print.bat, 放在任意目录,如C:\windows,内容就只有下面一行(假设Acrobat Reader所在路径是c:\program files\acrobat 6.0\Reader\AcroRd32.exe,操作系统以WinXP Professional为例):
@for %%a in (*.pdf) do "c:\program files\acrobat 6.0\Reader\AcroRd32.exe" /p /h "%%a"
然后对文件夹进行关联:

打开“我的电脑”,从菜单栏上选“工具”--“文件夹选项”--“文件类型”,下拉列表,找到“文件夹”,单击“高级”--“新建”--在“操作”框里填入“打印所有pdf文件”,执行的应用程序就填上那个批处理的路径:C:\windows\print.bat,按“确定”。

第二个问题,大体上一致,批处理就长一些,取名为Print2.bat,同样放在C:\windows下:
@echo off
for %%a in (*.pdf) do "c:\program files\acrobat 6.0\Reader\AcroRd32.exe" /p /h "%%a"
set DestDir=%date:~0,-4%
if not exist %DestDir% md %DestDir%
move *.pdf %DestDir%
好,再用上面第一个问题的方法,为PDF类型的文件进行关联,道理一样,我就不赘述了。
作者: unique009     时间: 2005-11-8 09:05


  Quote:
Originally posted by JonePeng at 2005-11-7 22:36:

@echo off
for %%a in (*.pdf) do "c:\program files\acrobat 6.0\Reader\AcroRd32.exe" /p /h "%%a"
set DestDir=%date:~0,-4%
if not exist %DestDir% md %DestDir%
move *.pdf %DestDir%

谢谢,想再问一下红色的"/p /h"参数是什么意思?

%date:~0,-4%  又是什么意思?以前没见过这种格式的
作者: unique009     时间: 2005-11-8 09:09
因为我看见以前的贴子很多都是用for来提取时间的
作者: JonePeng     时间: 2005-11-8 12:44
/p 参数就是打印, /h 的具体意思我不大清楚,我猜可能就是允许后台打印的意思吧。这些参数从哪儿来的呢?其实我是在文件夹选项的文件类型里找到 pdf 文件类型,查看其关联设置时就发现Print一项的命令行有这些参数。

%date:~0,-4% 是提取当前日期变量的一部分:由于%date%变量包括日期和星期几,我希望仅仅要日期部分,即从第一个字符开始到倒数第四个字符,这样就能提取出一个日期的字符串。这个变量的用法仅适用于Win2000/XP/2003,详细的用法可以输入 set /? 来查询。
作者: unique009     时间: 2005-11-8 13:41
明白了,谢谢!