首页 > 解决方案 > 获取真实的exe位置路径

问题描述

我正在尝试通过另一个转换为 exe () 的脚本执行 2 个 exe ( File1.exeand ) .. 当我使用脚本中的行时它工作正常:File2.exeRun.exeRun.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.exe和中的脚本file2.exe是:

write-host "$(Get-Location)"

所以这必须在我运行启动器( )的控制台窗口中打印C:\Users\Sensei\Desktop\folder1和,但我得到的是启动器路径,即C:\Users\Sensei\Desktop\folder2file1.exefile2.exeRun.exeC:\Users\Sensei\Desktop

标签: powershellworking-directory

解决方案


答案在这里:

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

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

推荐阅读