文件内容如下:

REM Jerry
::这是注释
@ECHO off
SETLOCAL
CALL :find_dp0
IF EXIST "%dp0%node.exe" (
  SET "_prog=%dp0%node.exe"
) ELSE (
  SET "_prog=node"
  SET PATHEXT=%PATHEXT:;.JS;=;%
)
"%_prog%"  "%dp0%node_modules@angularclibinng" %*
ENDLOCAL
EXIT /b %errorlevel%
:find_dp0
SET dp0=%~dp0
EXIT /b

ug消除参数命令_bat 命令 参数_参数命令错误

开始批处理文件中环境改动的本地化操作。在执行SETLOCAL以后所做的环境改动只限于批处理文件。要还原原来的设置deepin linux,必须执行ENDLOCAL。

在批处理文件中开始环境变量的本地化。本地化仍然持续到遇见匹配的endlocal命令或抵达批处理文件的末尾。

更多细节见windows文档。

在不停止父批处理程序的情况下从另一个调用一个批处理程序。call命令接受标签作为调用的目标

魔法变量%n包含用于调用文件的参数:%0是bat文件本身的路径,%1是前面的第一个参数,%2是第二个,依这种推。

bat 命令 参数_参数命令错误_ug消除参数命令

因为参数一般是文件路径,所以有一些额外的句型来提取部份路径。~d是驱动器bat 命令 参数linux嵌入式开发,~p是路径(不含驱动器),~n是文件名。它们可以组合,所以~dp是驱动器+路径。

因而%~dp0在bat中特别有用:它是执行bat文件所在的文件夹。

您还可以获得有关文件的其他类型的元信息:~t是时间戳,~z是大小。

dp0意思是批处理文件所在的驱动器和路径。

参数命令错误_bat 命令 参数_ug消除参数命令

第五行调用的:find_dp0,实现在第18行。

SETdp0=%~dp0

意思是把当前批处理文件所在的绝对路径bat 命令 参数,设置给批处理文件执行时临时申明的环境变量dp0

检测当前批处理文件的同级目录下,是否存在node.exe文件。

Author

这篇优质的内容由TA贡献而来

刘遄

《Linux就该这么学》书籍作者,RHCA认证架构师,教育学(计算机专业硕士)。

发表回复