Windows 如果批处理脚本是从其他位置运行的,有没有办法获取该文件夹?

Windows 如果批处理脚本是从其他位置运行的,有没有办法获取该文件夹?,windows,batch-file,path,Windows,Batch File,Path,我已经将批处理脚本的文件夹放在PATH环境变量中,因此我可以打开任何命令提示符,并可以在任何地方运行它。问题是我在脚本中有指向其他文件的链接作为相对路径,所以我需要获取实际脚本的路径 在运行脚本时,键入~dp0只会在命令提示符中提供我所在位置的路径,对于%cd%也是如此。我想知道实际脚本的位置。这可能吗?@ECHO OFF SETLOCAL 设置sourcedir=U:\sourcedir ::在%sourcedir%中生成一个不在路径上的简单批处理文件 回声@回声关闭 回声集本地 回声%%~d

我已经将批处理脚本的文件夹放在PATH环境变量中,因此我可以打开任何命令提示符,并可以在任何地方运行它。问题是我在脚本中有指向其他文件的链接作为相对路径,所以我需要获取实际脚本的路径

在运行脚本时,键入~dp0只会在命令提示符中提供我所在位置的路径,对于%cd%也是如此。我想知道实际脚本的位置。这可能吗?

@ECHO OFF SETLOCAL 设置sourcedir=U:\sourcedir ::在%sourcedir%中生成一个不在路径上的简单批处理文件 回声@回声关闭 回声集本地 回声%%~dp0 >%sourcedir%\q2477129s.bat ::强制%sourcedir%进入路径 设置路径=%path%;%sourcedir% ::执行生成的批处理 q24777129s 后藤:EOF 这个小脚本应该演示%dp0确实显示了脚本文件的位置。在我的例子中,它显示的U:\sourcedir\不在原始路径上


如果它对您不起作用,那么我们需要更多信息,明确指定您正在使用的过程-键入的内容、脚本的位置以及所涉及的批处理/可执行文件的确切名称。

许多老年人和年轻人都有一个名为Util的文件夹,该文件夹也在路径上,它包含批处理文件使用的所有第三方可执行文件。如何运行脚本?%~dp0似乎对我有效-即使在不同的目录上。@foxidrive我正在试图读取一个位于子目录中的文本文件,如果它正在运行exe,如果它位于路径上的文件夹中,它可能会起作用,但其他文件似乎不起作用。@konsolebox我通过在cmd中键入keygen来运行脚本。keygen.bat位于路径上的其他文件夹中。%~dp0只给出cmd所在的目录。@echo%~dp0&pause