start与start cmd的区别 首先需要知道,cmd是start命令的一个参数,与start命令其他参数并不冲突 start xxx.exe和start cmd xxx.exe的区别:start相当于就是双击的效果,start cmd相当于打开一个新的cmd并且执行命令 举个例子,nginx.exe,start nginx.exe就是一个窗口闪一下,就像双击nginx.exe,而start cmd nginx.exe就是打开一个cmd窗口执行nginx.exe,就像打开一个cmd窗口,执行nginx.exe
start命令相关参数 1 start ["title"] [/d path] [/i] [/min] [/max] [/separate | /shared] [/low | /normal | /high | /realtime] [/wait] [/b] [command/program] [parameters]
“title”: 可选参数,指定窗口标题。
/d path: 可选参数,指定启动程序的工作目录。
/i: 可选参数,以新窗口中的分离模式启动程序。
/min: 可选参数,启动程序时最小化窗口。
/max: 可选参数,启动程序时最大化窗口。
/separate | /shared: 可选参数,指定启动程序时使用的窗口类型。/separate 表示在新的独立窗口中启动程序(默认值),/shared 表示在共享控制台窗口中启动程序。
/low | /normal | /high | /realtime: 可选参数,指定启动程序时使用的进程优先级。/low 表示低优先级,/normal 表示正常优先级(默认值),/high 表示高优先级,/realtime 表示实时优先级。
/wait: 可选参数,等待程序结束后再退出。
/b: 可选参数,以后台模式启动程序。
原文链接:https://blog.csdn.net/m0_47406832/article/details/130379434
cmd命令 1 2 @echo off start cmd </c或者/k> "command"
@echo off:下面的命令都不在窗口中打印,直到遇到@echo on,@echo on下面的命令会打印
start:打开一个新窗口执行命令,并且不会关闭窗口
cmd:打开一个新的cmd窗口,但是不加参数不会在新窗口执行后面的命令
/c:在新的cmd窗口执行/c后面的命令,执行完关闭窗口
/k:在新的cmd窗口执行/c后面的命令,执行完不关闭窗口
“command”:可执行命令,包括exe等文件
for语句 1 2 3 set newcd=%cd % //将%cd %赋给newcd,%cd %代表的是当前目录set newpath=%newcd:\=\\% //将newcd中的\换成\\for /f "skip=1 tokens=1" %%i in ('wmic process where "ExecutablePath=' %newpath%\\nginx.exe'" get ProcessId ^| findstr /R /V "^$"' ) do ( taskkill /F /PID %%i )
skip=1:跳过结果第一行
tokens=1:获取结果的第一列
%%i in:将获取的结果赋给%%i
wmic process where “ExecutablePath=’%newpath%\nginx.exe’” get ProcessId ^| findstr /R /V “^$”:执行命令,并且跳过空行(findstr /R /V “^$”),在cmd中执行的时候,不需要加’^’,但是在for命令中需要
if语句
if语句中可以包含很多语句,但是它有一个特点,就是整个if块的语句(包括else)都是在一起执行的,如下
if “test” == “test” ( set one=one set two=two )
set one=one set two=two
但是这样就有一个问题,因为是在一起执行,那么if块中读取变量,在运行到if的时候所有变量就都确定好了,也就是说if语句中对同一个变量**自修改赋值 **是不行的,如下
if “test” == “test” ( set one=one set one=%one% two ) echo %one%
如上所示if中的第二个set,并没有等前一句set执行完在读取%one%,而是在执行的一瞬间读取one,如果向要在if块中**自修改赋值 **,一是使用goto语句,这样可以跳出if ,二是通过变量延迟,如下
setlocal EnableDelayedExpansion if “test” == “test” ( set one=one set one=!one! two ) echo %one%
通过setlocal EnableDelayedExpansion开启变量延迟,并且读取变量时,将%%改为!!,哪怕一起执行多条语句,变量也只会在执行到当前语句的时候读取