任务计划程序使用.bat定时/重启电脑时重置任务教程

因为客户工厂会时不时的断电,本来设置了一个SQL
server的作业来定时执行,但是断电的话就超过了可执行的时间,也就是这个作业并不会生效,也并没有解决这个问腿,对于这个需要来说只是一个重置计数器的作业而已。
所以我想了一下还是用Windows自带的任务计划程序来代替,下面就是集体操作步骤啦!

批处理文件和sql语句

分享一下我的批处理文件与SQL文件吧!

Counter.sql

USE [iPlant_ACC_MY2]
GO

UPDATE [dbo].[PACK_GENERATOR]
   SET counter = '0'
GO

Reset_Counter.bat

@ECHO OFF

SET dbhost=主机名(例如:127.0.0.1)
SET dbuser=用户名(例如:sa)
SET dbpasswd=用户密码(例如:admin)
SET dbName=数据库名称(例如:test)
SET sqlpath=E:\A(bat文件的根目录)
SET sqlfile=counter.sql(需要执行执行sql的文件)

:: 执行 SQL 脚本
osql -S %dbhost% -U %dbuser% -P %dbpasswd% -d %dbName% -i "%sqlpath%\%sqlfile%"

 //bat文件最后一定不要加类似pause的命令,也就是说,不要加有等待的命令,加了话就造成了0x41301报错问题,适用其他类型的脚本。

@ECHO Done!

另外普及一下osql常见参数:
用法: Sqlcmd [-U 登录 ID] [-P 密码]
[-S 服务器] [-H 主机名] [-E 可信连接]
[-N 加密连接][-C 信任服务器证书]
[-d 使用数据库名称] [-l 登录超时值] [-t 查询超时值]
[-h 标题] [-s 列分隔符] [-w 屏幕宽度]
[-a 数据包大小] [-e 回显输入] [-I 允许带引号的标识符]
[-c 命令结束] [-L[c] 列出服务器[清除输出]]
[-q “命令行查询”] [-Q “命令行查询” 并退出]
[-m 错误级别] [-V 严重级别] [-W 删除尾随空格]
[-u unicode 输出] [-r[0|1] 发送到 stderr 的消息]
[-i 输入文件] [-o 输出文件] [-z 新密码]
[-f <代码页> | i:<代码页>[,o:<代码页>]] [-Z 新建密码并退出]
[-k[1|2] 删除[替换]控制字符]
[-y 可变长度类型显示宽度]
[-Y 固定长度类型显示宽度]
[-p[1] 打印统计信息[冒号格式]]
[-R 使用客户端区域设置]
[-b 出错时中止批处理]
[-v 变量 = “值”…] [-A 专用管理连接]
[-X[1] 禁用命令、启动脚本、环境变量[并退出]]
[-x 禁用变量替换]
[-? 显示语法摘要]
此处使用的主要是
-S 服务器ip
-d 数据库名称
-U 连接用户名
-P 用户的密码
-i 执行的sql文件
-o sql语句输出的结果文件

以上批处理方法是学习了CSDN的一位博主提供的,但是做了些改动,如想要原博主的,原文链接:https://blog.csdn.net/bin470398393/article/details/81947108

创建任务计划程序:

1、在Windows中搜索并打开 “ 任务计划程序 ” 。
2、选择右侧的 “ 创建任务 ” 。
创建任务
3、打开 “ 常规 ” 选项卡→填写任务名称→选择 “ 不管用户是否登录都要运行 ” →勾选 “ 使用最高权限运行 ” ,如果没有勾选的话,权限不足也是无效的,任务会执行不起来。
常规选项配置
4、打开 “ 触发器 ” 选项卡→点击 “ 新建 ” 。
在这里插入图片描述
5、按需求选择任务触发时间,我这里选的是当系统启动时执行这个任务→点击 “ 确定 ” 。
![设定任务启动时间](https://img-blog.csdnimg.cn/23adcc7027674d73a9097c6e0a5d4ec2.png在这里插入图片描述

6、打开 “ 操作 ” 选项卡→点击 “ 新建 ” 。
在这里插入图片描述
7、点击 “ 浏览 ” 选择批处理所在的路径,“ 程序或脚本 ” 和 “ 添加参数 ” 都是.bat文件的文件目录,“ 起始于 ” 是.bat文件的根目录。

PS : 注意,文件目录千万不能有中文目录,会乱码,到时候会显示操作成功完成但是并没有生效。

在这里插入图片描述
8、打开 “ 条件 ” 选项卡→将 “ 如果计算机改用电池电源,则停止 ” 勾选掉,勾选 “ 唤醒计算机运行此任务 ” 和 “ 只有在计算机使用交流电源时才启动此任务 ” 。
在这里插入图片描述
9、打开 “ 设置 ” 选项卡→ 按需求配置,我这里是勾选了以下图中的,“ 允许按需运行任务 ” 这个代表我可以手动在任务计划程序中执行此任务。

PS:请再次检查一下所有配置项再点击确定,必须要确定你选定的用户是否拥有管理员权限,是否已勾选最高权限执行,以免任务执行失败或者是不执行,请务必要勾选该选项。

在这里插入图片描述

设置执行批处理脚本的用户权限

虽然我们的用户拥有管理员权限,但是没有执行批处理脚本的权限,这个需要设置的。
如果运行定时任务时出现这个错误,也是没有配置权限的问题:任务尚未运行(0x41303)。
PS:administrator和Administrators和Administrator有区别,请注意分辨。

1、打开 “ 本地安全策略→安全设置→本地策略→用户权限分配 ” 。
在这里插入图片描述
2、在右侧列表双击 “ 作为批处理作业登录 ” → 点击 “ 添加用户或组 ” 按钮,将执行批处理作业的用户添加进去即可。
在这里插入图片描述

运行任务

1、这个就是我们新建的任务程序,重启电脑就会执行了,执行成功就会提示 “ 操作成功完成(0x0)” 。
在这里插入图片描述

如何手动测试bat文件

可以在运行任务计划程序之前,先测试运行一下批处理文件,看看是否可以正常运行。

1、快捷键 “ Win+R ” →输入“ cmd ” → 点击 “ 确定 ” →输入启动批处理的语句后回车即可。

//运行批处理的语句:Start (.bat的文件路径)
start E:\A\Reset_Counter.bat

在这里插入图片描述
2、运行成功示意图。
在这里插入图片描述

小知识

如果任务计划程序的选项卡中 “ 历史记录已禁用 ” ,可以在 “ 任务计划程序库 ” 右击→点击选项卡中的 “ 启用所有任务历史记录 ” 就可以查看历史记录啦,这样会看问题会方便很多。

图片:

问题合集:

windows任务计划程序0x41301问题解决方法:

在这里插入图片描述
解决方法:
1.bat文件最后一定不要加类似pause的命令,也就是说,不要加有等待的命令,加了话就造成了0x41301报错问题,适用其他类型的脚本。
2.选择“不管用户是否登录都要运行”,勾选最高权限运行,然后用保存密码方式;记住运行此任务的用户;
然后打开“控制面板”、“管理工具”,然后打开“本地安全策略”。在“本地安全策略”窗口中,依次单击“本地策略”、“用户权限分配”,然后单击“作为批处理作业登录”,将此执行此计划任务的用户增加到列表里就可以了。

原文链接:https://blog.csdn.net/weixin_44635274/article/details/107923716

在测试执行bat时报错,COMMIT TRANSACTION 请求没有对应的 BEGIN TRANSACTION。

由于没有当时的截图,我就暂时用该博主的了。
在这里插入图片描述
此错误的原因是由于一个事务只能对应一个操作,要么回滚要么提交,所以执行了ROLLBACK TRAN语句后一定不能再执行COMMIT TRAN语句!!!而无论是回滚事务还是提交事务,都是不会中断SQL处理流程的,要想中断流程就需要使用RETURN语句。

原文链接:https://shiyousan.com/post/f13d29b7-0d87-4168-bd8b-8b28b0991b5a

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值