windows 命令 shell 脚本

windows 命令 shell 脚本

这是一个关于CMD shell脚本的问题,我见过如下脚本:

FOR %%X in (java.exe javac.exe ant.bat android.bat) do (
    SET FOUND=%%~$PATH:X
    IF NOT DEFINED %FOUND% GOTO MISSING
)

谁能向我解释一下这是什么%%~$PATH:X

答案1

%%~$PATH:X是路径连接。

%%X是实例变量的名称,在循环中迭代时,该变量被设置为java.exe、等javac.exeFOR

和之间~$PATH:基本上是在环境变量中包含的每个目录中搜索名为(或当前设置的任何内容)的文件。%%Xjava.exe%%X%PATH%

另请参阅这个 StackOverflow 问题重申了该技术并包含一些关于它的讨论(但没有从理论上解释它在语法上的作用)。PATHEXT那里也有很好的讨论。

答案2

扫描 PATH 环境变量中的每个目录是否存在文件 %X,并将第一个匹配的目录的名称保存到 FOUND 中。

HELP FOR在 Windows CMD shell 中输入以获取完整文档。

相关内容