获取包含当前执行的批处理脚本的目录

Moh*_*deh 35 windows command-line-interface batch windows-command-prompt path

%0在批处理文件中使用以获取批处理文件的包含目录,但结果是:-

c:\folder1\folder2\batch.bat

我只想要目录,没有批处理文件名,就像这样:-

c:\folder1\folder2\

我该怎么做?也许我应该过滤路径。如果是,我该怎么做?

Bar*_*Vos 58

%~p0
Run Code Online (Sandbox Code Playgroud)

只会返回路径。

%~dp0
Run Code Online (Sandbox Code Playgroud)

将返回驱动器+路径。

有关该主题的更多信息,请访问Microsoft 站点

通过在 Windows 操作系统上执行,也可以在for命令的帮助中找到有关此语法的信息for /?

  • 作为另一个参考来源,当您键入 `for /?` 时,也会显示相同的变量替换列表。 (2认同)

use*_*517 16

当前目录保存在 %CD%

  • %CD% 返回您从中执行批处理的路径,而不是批处理文件所在的位置 (4认同)
  • @Mohammad:确实,它是 *current* 目录。另一个是批处理文件所在的目录。这两个不一样,你的问题明确要求这个。所以如果这不是你的意思,请编辑它。 (4认同)