Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Batch file 如何从批处理文件本身中找到已编译的bat(.exe)目录?_Batch File - Fatal编程技术网

Batch file 如何从批处理文件本身中找到已编译的bat(.exe)目录?

Batch file 如何从批处理文件本身中找到已编译的bat(.exe)目录?,batch-file,Batch File,我已经将一个.bat应用程序编译成了.exe,问题是该应用程序创建了一些结果文件夹,这些文件夹应该位于同一个目录中,但是当.exe解压到本地临时目录中时,结果文件夹就在那里创建。 如何将结果保存在与my.exe相同的文件夹中?我可以,我做到了,其余的“批处理文件内容”和编译器本身对问题没有意义,只需使用: wmic process where "name='here.exe'" get ExecutablePath 只需迭代结果并将其设置为变量: for /f "tokens=2 delims

我已经将一个.bat应用程序编译成了.exe,问题是该应用程序创建了一些结果文件夹,这些文件夹应该位于同一个目录中,但是当.exe解压到本地临时目录中时,结果文件夹就在那里创建。
如何将结果保存在与my.exe相同的文件夹中?

我可以,我做到了,其余的“批处理文件内容”和编译器本身对问题没有意义,只需使用:

wmic process where "name='here.exe'" get ExecutablePath
只需迭代结果并将其设置为变量:

for /f "tokens=2 delims=," %%I in (
    'wmic process where "name='here.exe'" get ExecutablePath^,Handle /format:csv ^| find /i "here.exe"') do set "exepath=%%~I"

晚安。

我试过“%~dp0”和“%CD%”,但它们都指向临时目录,你不能。这是您正在使用的任何转换器的一个特性。以后不要这样做。这样只会获得名为
here.exe的文件的路径(确切地说,是最后一个查找,如果有多个同名文件)。无法保证,这就是执行批处理文件的文件。可能对您有用,但请注意,如果没有唯一的文件名,您最好设置自定义窗口标题并搜索该标题。