//startup.bat
taskkill /F /FI "imagename eq nginx.exe"
start .\nginx.exe
pause
//第二个版本
@echo off
time /t >> a.txt
tasklist | findstr nginx.exe
Rem echo %errorlevel%
@echo on
if %errorlevel%==0 taskkill /F /IM nginx.exe
E:
cd nginx-1.12.2
start nginx.exe
exit
杀掉所有名称为nginx的进程。
注意:window shell 有一点坑
1、imagename eq nginx.exe 必须用双引号,单引号会报错。
2、/F /FI 最好也大小
win10 powershell 不存在上述问题
补充windows bat脚本常用指令:
echo 和 @
回显命令
@ #关闭单行回显
echo off #从下一行开始关闭回显
@echo off #从本行开始关闭回显。一般批处理第一行都是这个
echo on #从下一行开始打开回显
echo #显示当前是 echo off 状态还是 echo on 状态
echo. #输出一个”回车换行”,空白行
#(同echo, echo; echo+ echo[ echo] echo/ echo)
- Rem: 相当于程序里面的注释// /…./
- pause: 等待 …会提示“请按任意键继续”
- exit: 退出命令窗口
- cd: 在powershell中,”cd + 路径 “是可以直接进入到目录的,但是在常规的命令窗口中,不能直接进入。必须先输入一个盘符,比如D: 然后再使用cd 命令。
例子:
echo hello
@echo date
Rem md newDir
D:
cd centos\centos7
pause
结果:
C:\Users\slimteaegg\Desktop>echo hello
hello
date
C:\Users\slimteaegg\Desktop>Rem md newDir
C:\Users\slimteaegg\Desktop>D:
D:\>cd centos\centos7
D:\centos\centos7>pause
请按任意键继续. . .
- 常用DOS命令:
md 文件夹名称: 新建文件夹
rd: 删除目录
dir: 显示目录以及子目录---单独dir命令,显示当前文件下的内容;"dir+路径",显示目标路径下的文件内容
"type 文本路径": 显示文本内容
copy: 复制文件--copy E:\startup.bat D:\startup.bat
move: 移动文件--move E:\startup.bat D:\
ren: 重命名----ren D:\startup.bat start_nignx.bat
find: 查找字符串---find "start" D:\start_nignx.bat
taskkill结束进程
tasklist显示进程列表
cls: 清屏
- call “bat文件路径”: 调用脚本
- %errorlevel%
echo %errorlevel%
每个命令运行结束,可以用这个命令行格式查看返回码
默认值为0,一般命令执行出错会设 errorlevel 为1
date 和 time 日期和时间 date #显示当前日期,并提示输入新日期,按"回车"略过输入 date/t #只显示当前日期,不提示输入新日期 time #显示当前时间,并提示输入新时间,按"回车"略过输入 time/t #只显示当前时间,不提示输入新时间
set : 显示所有可用的变量 set + 变量名: 查看该变量下的值----set Path