bat脚本全称batch脚本,也称批处理文件,是Windows系统默认支持的脚本语言。
第一步 创建 .bat 文件
打开系统后缀名显示(如果你的系统自动隐藏了的话),做一个 .bat文档。名字尽量别起中文。
然后写输出语句。比如:
下面是对提供的批处理脚本逐行的注释:
1.@echo on:
作用:打开命令回显功能,这意味着在执行命令时,命令会显示在命令行窗口中。通常用于调试目的,以便查看每个命令的执行情况。
2.cd D::
作用:切换到D:盘符。如果当前已经在D:盘符,则没有效果。如果在其他盘符,这将切换到D:盘根目录。
3.cd D:\Matrix2\zenstars_crm:
作用:进入D:盘符下的Matrix2\zenstars_crm目录。此行假设路径已经存在,且切换至该目录以执行后续命令。
4.php yii prime/index:
作用:执行PHP命令,运行yii框架中的prime/index操作。yii是一个PHP框架,prime/index很可能是该项目的某个控制器操作(如一个脚本或任务)。
5.pause:
作用:暂停批处理脚本的执行,并等待用户按下任意键后才继续执行。这通常用于防止命令行窗口在脚本结束后立即关闭,以便用户查看输出或结果。
这个脚本的主要作用是在指定的目录下运行一个基于Yii框架的PHP脚本,并在结束时暂停以便查看输出。
准备一个脚本运行检验.bat文件
我的.php文件就是输出质数(写在cosole下面的controllers下),默认输出1--10000间的质数。
附在下面
<?php namespace console\controllers; use common\helper\DayLog; use Psr\Log\LogLevel; use yii\console\Controller; use yii\console\ExitCode; class PrimeController extends Controller { public function actionIndex($limit = 10000) { /* DayLog::getLogger('logFile')->log(LogLevel::INFO, '警告');*/ // 获取日志记录器 $logger = DayLog::getLogger('logFile'); // 初始化一个数组来保存质数 $primes = []; // 开始计算质数 for ($i = 2; $i <= $limit; $i++) { if ($this->isPrime($i)) { $primes[] = $i; } } // 将所有质数组合成一个字符串 $primesString = implode(', ', $primes); // 自定义日志格式 $logMessage = sprintf("[%s] touch.INFO: 质数: %s [] []", date('Y-m-d\TH:i:s.uP'), $primesString); // 记录日志 $logger->log(LogLevel::INFO, $logMessage); // 输出所有找到的质数到控制台 echo "质数列表(到 $limit): " . $primesString . "\n"; // 返回成功退出码 return ExitCode::OK; } // 判断一个数是否为质数的辅助函数 private function isPrime($number) { if ($number <= 1) { return false; } for ($i = 2; $i <= sqrt($number); $i++) { if ($number % $i == 0) { return false; } } return true; } }
第二步 设立定时任务
右键此电脑>管理>任务计划程序(不同电脑系统操作可能存在区别,不行就去搜怎莫创建定时任务,配上你的系统)
点进去能认字就能看得懂,重点在设置启动程序这里,添加你的.bat文件路径。
然后就完成了。如果出现不处理的情况仔细看弹出命令窗的报错提示,如果还有错就别选创建基本任务,选择基本任务下的创建任务,单独设置每一项,并勾选使用最高权限运行。
.bat文件的一些语法规则函数细节参考大神cffchh的文章
http://t.csdnimg.cn/nZCSp