Batch file 计划任务和打印机
我想在我的Win7 64位计算机上查看一个文件夹中的新pdf文件,并在文件夹中有pdf文件时自动打印它们。打印后,应将pdf文件移动到子文件夹中。所以,在谷歌搜索之后,我做了一个小批量文件Batch file 计划任务和打印机,batch-file,printing,cmd,task,Batch File,Printing,Cmd,Task,我想在我的Win7 64位计算机上查看一个文件夹中的新pdf文件,并在文件夹中有pdf文件时自动打印它们。打印后,应将pdf文件移动到子文件夹中。所以,在谷歌搜索之后,我做了一个小批量文件 cd "D:\print" for %%i in (*.pdf) do ( "C:\Program Files\Tracker Software\PDF Viewer\PDFXCview.exe" /print "%%i" timeout /T 10 /nobreak move D:\print\*.pdf
cd "D:\print"
for %%i in (*.pdf) do (
"C:\Program Files\Tracker Software\PDF Viewer\PDFXCview.exe" /print "%%i"
timeout /T 10 /nobreak
move D:\print\*.pdf D:\print\printed
echo %%i
)
我将其存储在文件夹d:\print as print.cmd中。通过双击启动cmd时,打印机开始工作,pdf文件移动到我定义的子文件夹(D:\print\printed)
为了查看文件夹,我想创建一个计划任务,在5分钟内重复这个cmd脚本
但是:
这不起作用,当脚本通过预定任务启动时,打印机不工作——文件的“移动”正在工作
我输入了计划任务:
程序:C:\Windows\SysWOW64\cmd.exe
参数:/c“d:\print\print.cmd”
你知道为什么我不能通过预定的任务访问打印机吗?
打印机通过usb连接
希望我能提供必要的信息!谢谢你的回答
move D:\print\*.pdf
为move/Y D:\print\%i
PushD %~dp0
:start
for %%i in ("D:\print\*.pdf") do (
"C:\Program Files\Tracker Software\PDF Viewer\PDFXCview.exe" /print "%%i"
move /y "%%i" "D:\print\printed"
echo %%i
)
timeout /T 300 /nobreak
goto start
move D:\print\*.pdf D:\print\printed
应该是move D:\print\%i D:\print\printed
,否则所有的pdf
都将在只打印一个之后被移动。不能说我是计划任务方面的专家,但在我看来,在运行计划任务的用户下定义的默认打印机不是所需的usb打印机。能否在PDFXCview.exe
参数中明确指定打印机?是否在文件夹中选择了开始?您正在启动cmd.exe,它使工作目录成为C:驱动器上的system32目录。因此,当您更改目录时,必须使用/D选项使工作目录成为D:drive。当您双击批处理文件来运行它时,工作目录是D:drive,因为它是脚本存储和执行的地方。哇!我在我的任务中添加了d:\print作为工作目录,它立即工作了!非常感谢!我现在需要做一些测试和检查,希望能再次请你们帮助我改进脚本;)如果批处理文件位于D:\Print中,您只需添加PushD%~dp0
,即可强制D:\Print也成为工作目录。%%i是文件的整个路径,因此可以直接执行move命令<代码>移动/y“%%i”D:\print\printed“尝试过。当文件夹中有3个文件时,它会打印第一个文件并移动它,然后打印第二个文件并移动它,依此类推。很好用。更好的方法是,每5分钟完成一次任务,或者使用t 300开始。那么我只能在PC启动时启动任务,你有什么建议吗?是否有任何选项可以使CMD窗口最小化或在它工作时隐藏它?或者是真的。我猜每五分钟运行一次的任务将提供一些冗余,因此如果cmd窗口失败,任务将每五分钟重新启动一次,而不是等待某人注销和重新登录。将计划任务设置为使用系统帐户运行,以便登录的用户看不到该任务。