文件内容如下:
REM Jerry::这是注释@ECHO offSETLOCALCALL :find_dp0IF EXIST "%dp0%node.exe" ( SET "_prog=%dp0%node.exe") ELSE ( SET "_prog=node" SET PATHEXT=%PATHEXT:;.JS;=;%)"%_prog%" "%dp0%node_modules@angularclibinng" %*ENDLOCALEXIT /b %errorlevel%:find_dp0SET dp0=%~dp0EXIT /b
开始批处理文件中环境改动的本地化操作。在执行SETLOCAL以后所做的环境改动只限于批处理文件。要还原原来的设置deepin linux,必须执行ENDLOCAL。
在批处理文件中开始环境变量的本地化。本地化仍然持续到遇见匹配的endlocal命令或抵达批处理文件的末尾。
更多细节见windows文档。
在不停止父批处理程序的情况下从另一个调用一个批处理程序。call命令接受标签作为调用的目标
魔法变量%n包含用于调用文件的参数:%0是bat文件本身的路径,%1是前面的第一个参数,%2是第二个,依这种推。
因为参数一般是文件路径,所以有一些额外的句型来提取部份路径。~d是驱动器bat 命令 参数linux嵌入式开发,~p是路径(不含驱动器),~n是文件名。它们可以组合,所以~dp是驱动器+路径。
因而%~dp0在bat中特别有用:它是执行bat文件所在的文件夹。
您还可以获得有关文件的其他类型的元信息:~t是时间戳,~z是大小。
dp0意思是批处理文件所在的驱动器和路径。
第五行调用的:find_dp0,实现在第18行。
SETdp0=%~dp0
意思是把当前批处理文件所在的绝对路径bat 命令 参数,设置给批处理文件执行时临时申明的环境变量dp0
检测当前批处理文件的同级目录下,是否存在node.exe文件。