C# 相当于 cd C :\appFolder c:\app. exe?

标签 c# batch-file process.start

<分区>

Possible Duplicate:
.Net Process.Start default directory?

我有一个 C# 应用程序,具体来说是单声道。此应用程序需要在用户系统上启动另一个应用程序。我知道 Process.Start 以及如何使用它,但是这个实例有一些特殊之处导致它无法正常工作。

出于某种原因,我试图通过 Process.Start 启动的程序需要从它所在的目录调用,否则它会在打开时出错。

我的意思是,如果我打开命令提示符并输入: C:\app文件夹\app.exe 然后应用程序会给我一个错误。

但是,如果我打开一个提示并去: cd c:\app文件夹 应用程序.exe

然后它就可以正常启动了。

我在使用 process.start 时遇到的问题是它尝试打开应用程序而不先执行与“cd c:\appFolder”等效的操作,因此应用程序在打开时出错。

那么我怎样才能让 Process.Start 执行相当于首先导航到应用程序文件夹“cd c:\appFolder”然后调用 app.exe 的操作?

顺便说一句,我已经通过放置解决了这个问题 cd C:\app文件夹 应用程序.exe

进入一个 .bat 文件,然后让 Process.Start 打开 .bat 文件,它工作得很好。不过我很好奇有没有办法把.bat文件删掉。

最佳答案

使用cd blah 只是改变你的工作目录。您可以通过设置 ProcessStartInfoWorkingDirectory 来设置进程的工作目录。也许是这样的:

var procInfo = new ProcessStartInfo("app.exe");
procInfo.WorkingDirectory = @"C:\appFolder";
Process.Start(procInfo);

关于C# 相当于 cd C :\appFolder c:\app. exe?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8931557/

相关文章:

c# - 如何调出 "Windows cannot open this file"对话框?

c# - 使用网络凭据通过 Process.Start(path) 访问网络共享

c# - "only part of a readprocessmemory or writeprocessmemory request was completed"process.start 期间

batch-file - 将所有奇数文件移动到一个文件夹

c# - 脚本之间未保存 Unity 实例

c# - wpf 按字母顺序排序组合框项目

c# - 测试文件夹中的每个文件是否为 jpeg

批量for循环内存泄漏?

batch-file - 如何使用 BAT 文件自动创建 msinfo32.nfo 文件?

c# - 将实体映射到存储过程时,如何在调用 SaveChanges() 后获取实体的标识