这只是一个快速的问题,我相信有人能够快速回答,因为我很可能只是错过了一些东西。
假设我有以下目录布局
Folder1
-> CurrentlyRunning.EXE
-> Folder2
ProcessToStart.Bat
ApplicationToStartFromBat.exe
这是应用程序内部的代码。
当前运行.EXE:
var proc = new Process
{
StartInfo =
{
FileName = "Folder2/ProcessToStart.Bat",
WindowStyle = ProcessWindowStyle.Hidden,
CreateNoWindow = true,
UseShellExecute = false
}
};
proc.Start();
ProcessToStart.Bat:
START ApplicationToStartFromBat.exe
现在,如果我通过双击运行 ProcessToStart.Bat,它将毫无问题地打开 ApplicationToStartFromBat.exe(这很好)。如果我运行 CurrentRunning.EXE(它将执行我上面发布的代码),BAT 文件会失败,说它找不到我的 EXE(这真的很奇怪)。
如果我将 BAT 文件更改为:
START Folder2/ApplicationToStartFromBat.exe
然后运行CurrentlyRunning.EXE,bat就会正确打开ApplicationToStartFromBat.exe。我的问题是由于某种原因我无法更改 bat 中的代码。
为什么会proc.Start()
导致 bat 文件搜索根目录发生更改,如何阻止这种情况发生?
谢谢