Batch file 如何从批处理文件本身中找到已编译的bat(.exe)目录?
我已经将一个.bat应用程序编译成了.exe,问题是该应用程序创建了一些结果文件夹,这些文件夹应该位于同一个目录中,但是当.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
如何将结果保存在与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的文件的路径(确切地说,是最后一个查找,如果有多个同名文件)。无法保证,这就是执行批处理文件的文件。可能对您有用,但请注意,如果没有唯一的文件名,您最好设置自定义窗口标题并搜索该标题。