中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-08-01 12:42
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [已结]如何用批处理实现批量打印某个文件夹下的所有pdf文件 查看 4,614 回复 7
楼 主 [已结]如何用批处理实现批量打印某个文件夹下的所有pdf文件 发表于 2005-11-07 10:40 ·  中国 广东 深圳 福田区 电信
初级用户
积分 28
发帖 8
注册 2005-11-05 13:58
20年会员
UID 44636
状态 离线
求助:如何用批处理实现批量打印某个文件夹下的所有pdf文件?


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


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

[ Last edited by unique009 on 2005-11-8 at 13:43 ]
2 发表于 2005-11-07 12:44 ·  中国 广东 广州 海珠区 电信
金牌会员
★★★★
D◎$ Fαп
积分 4,562
发帖 1,883
注册 2004-01-19 00:00
22年会员
UID 15812
性别 男
来自 广东广州
状态 离线
在我的电脑里全选所有pdf文件,单击鼠标右键,按“打印(Print)”。
----====≡≡≡≡ 我的至爱,永远是MSDOS!≡≡≡≡====----
3 发表于 2005-11-07 13:21 ·  中国 广东 深圳 福田区 电信
初级用户
积分 28
发帖 8
注册 2005-11-05 13:58
20年会员
UID 44636
状态 离线
这个...这个...方法是可以
但是我想要实现的功能是这样的
1.制作一个批处理,并在文件夹右键加入这个bat文件的快捷方式如"打印所有pdf文件"
2.当选中某个文件夹并右键单击"打印所有pdf文件"时,打印此目录下的所有pdf文件,然后在此文件夹中以当天时间再建一个子文件夹,并将所有已打印过的pdf文件移入此文件夹内

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

感谢回复!
4 发表于 2005-11-07 22:36 ·  中国 广东 广州 海珠区 电信
金牌会员
★★★★
D◎$ Fαп
积分 4,562
发帖 1,883
注册 2004-01-19 00:00
22年会员
UID 15812
性别 男
来自 广东广州
状态 离线
对第一个问题,创建一个批处理文件 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类型的文件进行关联,道理一样,我就不赘述了。
----====≡≡≡≡ 我的至爱,永远是MSDOS!≡≡≡≡====----
5 发表于 2005-11-08 09:05 ·  中国 广东 深圳 福田区 电信
初级用户
积分 28
发帖 8
注册 2005-11-05 13:58
20年会员
UID 44636
状态 离线

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% 又是什么意思?以前没见过这种格式的
6 发表于 2005-11-08 09:09 ·  中国 广东 深圳 福田区 电信
初级用户
积分 28
发帖 8
注册 2005-11-05 13:58
20年会员
UID 44636
状态 离线
因为我看见以前的贴子很多都是用for来提取时间的
7 发表于 2005-11-08 12:44 ·  中国 广东 广州 海珠区 电信
金牌会员
★★★★
D◎$ Fαп
积分 4,562
发帖 1,883
注册 2004-01-19 00:00
22年会员
UID 15812
性别 男
来自 广东广州
状态 离线
/p 参数就是打印, /h 的具体意思我不大清楚,我猜可能就是允许后台打印的意思吧。这些参数从哪儿来的呢?其实我是在文件夹选项的文件类型里找到 pdf 文件类型,查看其关联设置时就发现Print一项的命令行有这些参数。

%date:~0,-4% 是提取当前日期变量的一部分:由于%date%变量包括日期和星期几,我希望仅仅要日期部分,即从第一个字符开始到倒数第四个字符,这样就能提取出一个日期的字符串。这个变量的用法仅适用于Win2000/XP/2003,详细的用法可以输入 set /? 来查询。
----====≡≡≡≡ 我的至爱,永远是MSDOS!≡≡≡≡====----
8 发表于 2005-11-08 13:41 ·  中国 广东 深圳 福田区 电信
初级用户
积分 28
发帖 8
注册 2005-11-05 13:58
20年会员
UID 44636
状态 离线
明白了,谢谢!
论坛跳转: