获取真正的exe位置路径

Get real exe location path

我正在尝试通过以下方式执行 2 个 exe(File1.exeFile2.exe) 另一个脚本转换为 exe (Run.exe) .. 当我使用 Run.exe 脚本中的行时它工作正常:

Start-Process -FilePath "$(Get-Location)\Folder1\File1.exe"
Start-Process -FilePath "$(Get-Location)\Folder2\File2.exe" 

问题是 File1.exeFile2.exe 获取启动器的位置(即 Run.exe)而不是它们自己的位置:

我的架构是:

Desktop\run.exe
Desktop\folder1\file1.exe
Desktop\folder2\file2.exe

File1.exefile2.exe 中的脚本是:

write-host "$(Get-Location)"

所以这必须在 file1.exefile2.exe 的控制台 windows 中打印 C:\Users\Sensei\Desktop\folder1C:\Users\Sensei\Desktop\folder2 当我 运行 启动器( Run.exe),但我得到的是启动器路径,即C:\Users\Sensei\Desktop

答案在这里:

$FullPathToEXE = [System.Diagnostics.Process]::GetCurrentProcess().MainModule.FileName

$DirectoryContainingEXE = [System.IO.Path]::GetDirectoryName($FullPathToEXE)