【发布时间】:2010-09-18 02:12:38
【问题描述】:
如何获取 cmd.exe 的当前工作目录?
这似乎是可能的。例如使用 ProcessExplorer,选择 CMD.exe,右键单击,属性,图像选项卡,“当前目录”反映使用 CD 或 CHDIR 命令设置的目录。
我查看了 .NET Process 和 ProcessStartInfo 类(ProcessStartInfo.WorkingDirectory 总是返回“”),但似乎找不到确定这一点的方法。 PInvoke 也没有什么突出的。
作为一个例子,我希望能够以编程方式说出类似的内容: Process.GetCurrentWorkingDirectory(processID) 其中 processID 是另一个正在运行的进程的 Windows 进程 ID。
有什么解决方案,WinAPI 还是 .NET?
[更新]
问这个问题的原因:
我已经使用“命令提示符资源管理器栏”有一段时间了,它很棒,除非我“CD”到一个新目录,当前的资源管理器窗口也不会改变。 (即同步只是从资源管理器到命令提示符的一种方式)。我正在寻找这两种方式。
【问题讨论】:
-
您要求的内容听起来很可疑。一个进程不应干扰另一个进程,除非您正在测试 (QA) 或调试。将其用于“生产”或商业软件是不好的,因为它需要特权。你的产品不会得到。那么,你想完成什么?
-
公平的问题。没有什么鱼腥味。我已经使用“命令提示符资源管理器栏”有一段时间了,它很棒,除非我“CD”到一个新目录,当前的资源管理器窗口也不会改变。 (即同步只是从资源管理器到命令提示符的一种方式)。我正在寻找这两种方式。
-
我需要这个用于测试目的 - 我想杀死一个 java Tomcat 进程,并用它来区分它与其他方式。