第一个命令行可能是:
@set "PATH=%~dp0node_modules\.bin;%PATH%"
此命令行在批处理文件目录中子目录PATH
中子目录.bin
的路径开始处添加到 local node_modules
环境变量而不是当前目录。
%~dp0
总是扩展到以反斜杠结尾的批处理文件目录路径。出于这个原因,%~dp0
应该始终与文件夹/文件名连接在一起,如此处所述,不要附加反斜杠。
可以使用%CD%\
代替%~dp0
在当前目录的子目录.bin
中添加子目录node_modules
的路径到 local PATH
环境变量。但是请注意,当前目录可能总是与批处理文件目录不同,因此在这里很可能不好。
%CD%
扩展为不以反斜杠结尾的目录路径字符串,但当前目录是驱动器的根目录,在这种情况下,%CD%
扩展为驱动器号+冒号+反斜杠。因此,%CD%
的使用将需要命令行:
@if not "%CD:~-1%" == "\" (set "PATH=%CD%\node_modules\.bin;%PATH%") else set "PATH=%CD%node_modules\.bin;%PATH%"
第二个命令行可能是:
@%*
该非常短的命令行导致解释传递给该批处理文件的所有参数,但参数0除外,作为命令行在解析后由Windows命令处理器执行。另请参阅:How does the Windows Command Interpreter (CMD.EXE) parse scripts?
命令行开头的
@
导致Windows命令处理器cmd.exe
处理批处理文件,在解析后不输出命令行。带有命令set
和%*
的命令行不再需要@
,而位于批处理文件顶部的@echo off
行的开头。
@echo off
set "PATH=%~dp0node_modules\.bin;%PATH%"
%*
打开command prompt,运行call /?
并阅读输出帮助,解释如何在批处理文件中引用批处理文件参数。
另请参见SS64.com,其中包含Windows CMD和Linux Shell命令的参考。
本文链接:https://www.f2er.com/3132405.html