亲爱的Stackoverflow用户,
我有一个SQL代理作业,它以PDF文件格式生成特定报告,然后将PDF复制到网络目录,然后删除源目录中的PDF文件。
SQL作业包含两个步骤: 1.生成报告 2.将报告复制到网络位置。
对于第2步,我制作了一个bat文件,用于处理pdf文件的复制和删除。
bat文件如下:
set source_dir=C:\Reports\Energie\Uur
set dest_dir=\\KWS2-WEB-SERVER\Share\Reports\Uur
C:\Windows\System32\Robocopy.exe %source_dir% %dest_dir% /MOV /Z
但是,当我运行我的作业时,它会挂起第二步。状态只停留在“正在执行”。
这是我在步骤中说明的行(要执行的bat文件的位置):
cmd.exe /c "C:\Reports\rapport_uur_copy.bat"
我的工作设置如下:
第1步
类型:操作系统(CmdExec) 成功:转到下一步
失败时:退出作业报告失败
第2步
类型:操作系统(CmdExec)
成功:退出工作报告成功
失败时:退出作业报告失败
一些事实:
提前致谢!
答案 0 :(得分:3)
当批处理脚本需要使用非本地驱动器时,例如共享它总是需要特殊权限,意味着you need to use an account to run the script which is allowed to log on as batch task in secpol
- (单击启动类型secpol.msc并启动它 - 在MSC管理单元中选择“本地策略” - 选择“用户权限分配” - 右键单击“以批处理作业登录”并选择“属性” - 单击“添加用户或组”,然后包括相关用户。)
在正常批次中也无法使用\\drives
,它们必须被映射为具有char的驱动器,例如V:\drive
此映射got to be made by the batch itself
与user account used running the batch
我在我的脚本中遇到过这种情况。