一、cmd.exe启动参数说明 /c /d

/c 执行 String 指定的命令,执行完后停止,会退出。例如:

@echo off

cmd /c "echo %cd% & echo ddddd & set xxx=12345"

pause

cls

后面的pause和cls也会执行,执行到最后则会退出当前的运行环境(双击运行方式),但当前环境变量xxx不会保留(开始->运行->cmd,然后执行当前bat文件的方式执行完后,再次输入set查看当前环境变量)

/k

执行 String 指定的命令并继续,运行完会保持当前运行窗口及环境变量。例如:

@echo off

cmd /k "echo %cd% & echo ddddd & set xxx=12345"

pause

cls

程序执行完cmd后面字符串的命令后就会暂停执行,所以后面的pause和cls不会执行。但窗口和环境变量会保持。运行方式:双击或从命令行执行当前bat文件都行。

二、打开脚本所在的目录:

1. cd /d %~dp0

cd /d 表示直接转换到后面的路径,否则如果切换盘符,就需要再输入盘符才能切换路径。

d:表示扩展到批处理文件所在的盘符;p表示扩展到批处理文件所在的路径.假如批处理文件在c盘的123文件下的test文件夹下:

c:\123\test\批处理文件:d:表示c:\;p表示123\test\。如果有短路径用%~sdp0,比如:

C:\Documents and Settings\Administrator\桌面\test\新建文件夹 (4)

使用短路径为:C:\DOCUME~1\ADMINI~1\桌面\test\新建文~4\

2. explorer %CD% 这个也可以打开脚本所在的目录

3. 运行脚本后,不退出:

1)在后面加上pause,按任意键就能退出。

2)加上cmd /k停留在当前路径,如果是用explorer %CD%打开的目录路径,最后用这个方法停留在控制台,会新打开批处理所在目录的一个文件夹。在前面加上@关闭这行命令的回显,如@cmd /k。关闭所有的回显: @echo off

4. %cd%与%~dp0的区别

参考:bat脚本%cd%和%~dp0获取当前目录区别_dmfrm的博客

%cd%是获取执行脚本的目录,%~dp0获取脚本所在的目录。

centos bat执行 bat命令执行_centos bat执行

三、使用函数:

如下是一个最简单的函数写法;以:func开始以goto:eof结束。:func和goto:eof之间的为函数内容,例如这里的echo this is a bat func

:func
echo this is a bat func
goto:eof

 写好了bat函数之后,我们需要调用它。如下代码片段展示了如何在bat脚本中调用函数。其实很简单,就这一句call:func即可。

call:func
pause
:func
echo this is a bat func
goto:eof