几个批处理脚本

博客介绍了批处理脚本的多种操作,包括判断服务是否启动、以命令行形式启动MySQL,适用于绿色使用场景;还涉及判断文件或文件夹是否存在、判断命令行参数、获取脚本所在目录及上级目录,以及检查网络通畅,ping不通百度会持续重试。

判断某服务是否启动

for /f "skip=3 tokens=4" %%i in ('sc query mysql') do set "mysqlstatus=%%i" && goto :mysql

:mysql
if /i "%mysqlstatus%"=="RUNNING" (
    echo MySQL is running
) else (
    net start mysql
)

通过命令行的形式启动MySQL

不通过服务的形式启动MySQL,适用于希望绿色使用MySQL的情况下:

start "MySQL测试服务" d:\mysql\bin\mysqld.exe --defaults-file=d:\mysql\my.ini --console

判断某文件、文件夹是否存在

if exist "d:\test" goto filecopy
if not exist "d:\test\a.txt" echo a > d:\test\a.txt

:filecopy

判断脚本执行时命令行中给的参数

if not ""%1"" == ""run"" goto haha

获取脚本所在目录

set Directory=%~dp0
echo  %Directory%

得到的是目录的路径,带最后的斜线。d:\test\

set Directory2=%Directory:~0,-1%
echo  %Directory2%

得到的是目录的路径,不带最后的斜线。d:\test

获取脚本所在目录的上级目录

1、获取当前目录后切换至上一级目录,再获取此时的当前目录路径

set Directory=%~dp0
cd /d %Directory%\..
set ParentDirectory=%%~dp0
echo %ParentDirectory%

2、获取当前目录后根据当前目录下的文件获取其上级目录

set Directory=%~dp0
set Directory2=%Directory:~0,-1%
for %%d in (%Directory2%) do set ParentDirectory=%%~dpd
echo %ParentDirectory%

这里,一定要去掉最后的\后再取上一级,不然会取得是低一级的目录

检查网络通畅

ping百度,不通的话继续尝试直至ping通。不通的时候提示not connected, try again 第几次重试 times…;通的话提示connected…

@echo off
set i=1
:check
ping www.baidu.com>nul&&echo connected... && ping -n 2 127.1>nul || echo %time%: not connected, try again %i% times... && set /a i=i+1>nul && goto check
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值