Batch file 计划任务和打印机

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

我想在我的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 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

  • 将计划任务指向实际启动批处理文件,而不是调用cmd并将脚本路径放入参数中

  • 您还可以编辑批处理文件,并将其编码为每5分钟循环一次,因此只需启动一次:

        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窗口失败,任务将每五分钟重新启动一次,而不是等待某人注销和重新登录。将计划任务设置为使用系统帐户运行,以便登录的用户看不到该任务。