使用 InvokeMethod 创建时找不到路径

Posted

技术标签:

【中文标题】使用 InvokeMethod 创建时找不到路径【英文标题】:Path not found when using InvokeMethod create 【发布时间】:2014-09-12 09:00:08 【问题描述】:

当我尝试这个时得到 returnValue 9(找不到路径),我错过了什么?我正在尝试通过单击按钮运行 .bat 文件,下面的代码也不例外,但看起来找不到路径..

try
    
        ManagementClass management = new ManagementClass("Win32_Process");

        ManagementBaseObject inParams = management.GetMethodParameters("Create");

        inParams["CommandLine"] = "test.bat";
        inParams["CurrentDirectory"] = @"C:\test\"; //this is where test.bat is

        var output = management.InvokeMethod("Create", inParams, null);

        lblStatusResponse.Text = "" + output["returnValue"];
    
    catch (Exception ex)
    
        lblStatusResponse.Text = ex.ToString();
    

【问题讨论】:

您不使用Process 类的任何原因,例如***.com/questions/181719/…? 无法在我的服务器上运行... 【参考方案1】:

您可以使用完全限定路径作为 CommandLine [in] 参数:

inParams["CommandLine"] = @"c:\test\test.bat";

CurrentDirectory [in] 正在设置子进程的路径,而不是 bat 文件的“路径”。

【讨论】:

本地运行良好。但是当我在我的服务器上部署它时它不起作用。但我在返回值中得到 0 那么问题就出在您的 .bat 文件中。权限也可能是一个问题。我假设您可以接受我的回答并打开一个新问题,您还可以在其中发布 .bat 的内容。

以上是关于使用 InvokeMethod 创建时找不到路径的主要内容,如果未能解决你的问题,请参考以下文章

编译时找不到动态库

创建应用程序扩展时找不到桥接头

创建应用程序扩展时找不到桥接头

使用具有神奇记录的多个键进行排序时找不到键路径

使用Move-Item时找不到路径

使用 slug 和基于类的视图时找不到视图