Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
批次工作正常,但;windows找不到devcon.exe“;在c#程序中_C#_Batch File - Fatal编程技术网

批次工作正常,但;windows找不到devcon.exe“;在c#程序中

批次工作正常,但;windows找不到devcon.exe“;在c#程序中,c#,batch-file,C#,Batch File,我有一个批处理文件,它禁用和启用了一些使用的驱动程序。 当我双击这个批处理文件来运行它时,它工作得很好。 然而,我试图从我用这行代码编写的C#程序中运行它: System.Diagnostics.Process.Start("C:/*path to file*/file.bat"); 它运行正常,直到尝试打开devcon.exe,我收到以下消息: 之后,它继续平稳运行 你知道为什么C#程序不起作用吗 p、 由于IP问题,我无法发布批处理代码…好的,经过一点研究,我找到了这个简单的解决方案:

我有一个批处理文件,它禁用和启用了一些使用的驱动程序。 当我双击这个批处理文件来运行它时,它工作得很好。 然而,我试图从我用这行代码编写的C#程序中运行它:

System.Diagnostics.Process.Start("C:/*path to file*/file.bat");
它运行正常,直到尝试打开devcon.exe,我收到以下消息:

之后,它继续平稳运行

你知道为什么C#程序不起作用吗

p、
由于IP问题,我无法发布批处理代码…

好的,经过一点研究,我找到了这个简单的解决方案: 只需在批处理代码的开头更改为devcon.exe的目录(使用cd命令),即:

cd "C:/*path to the directory of devcon.exe*"
#rest of the code

好的,经过一点研究,我发现了这个简单的解决方案: 只需在批处理代码的开头更改为devcon.exe的目录(使用cd命令),即:

cd "C:/*path to the directory of devcon.exe*"
#rest of the code

问题往往是“工作目录”。在资源管理器中双击某个内容时,工作目录被设置为当前文件夹,因此从批处理文件的角度来看,它的当前目录是它自己的目录

执行C#应用程序时,工作目录通常是应用程序exe文件的目录,但不一定是(例如,如果应用程序使用链接运行,则可以指定其他工作目录)。这就是为什么要查找应用程序EXE文件的目录,它不能保存为使用
GetCurrentDirectory


因此,实际情况是应用程序运行批处理文件,但将应用程序的目录(而不是批处理文件的目录)作为工作目录。批处理文件中显式
cd
的替代方法是在调用
Process.Start

时指定工作目录。问题通常是“工作目录”。在资源管理器中双击某个内容时,工作目录被设置为当前文件夹,因此从批处理文件的角度来看,它的当前目录是它自己的目录

执行C#应用程序时,工作目录通常是应用程序exe文件的目录,但不一定是(例如,如果应用程序使用链接运行,则可以指定其他工作目录)。这就是为什么要查找应用程序EXE文件的目录,它不能保存为使用
GetCurrentDirectory


因此,实际情况是应用程序运行批处理文件,但将应用程序的目录(而不是批处理文件的目录)作为工作目录。批处理文件中显式
cd
的替代方法是在调用
Process.Start

时指定工作目录。您可以粘贴批处理代码,它的唯一文本。。。然而。。听起来devcon#u 64.exe不在路径中…是的,它在路径中-如果不是,批处理将不会在C#之外运行,但它会运行..这取决于代码运行的位置和方式。。您尚未解释的可能仍然不是。尝试在批处理文件中使用Devnc_64.exe的完整路径(使用devcon_64.exe)您的
%path%
变量可能不同。好的,这显然是问题所在。我将把答案写在下面你可以粘贴批处理代码,它唯一的文本。。。然而。。听起来devcon#u 64.exe不在路径中…是的,它在路径中-如果不是,批处理将不会在C#之外运行,但它会运行..这取决于代码运行的位置和方式。。您尚未解释的可能仍然不是。尝试在批处理文件中使用Devnc_64.exe的完整路径(使用devcon_64.exe)您的
%path%
变量可能不同。好的,这显然是问题所在。我会把答案写在下面谢谢!如何准确指定工作目录?使用
ProcessStartInfo
类的实例作为
进程的参数。Start
方法在
工作目录
属性中指定有效值。谢谢!如何准确地指定工作目录?通过使用
ProcessStartInfo
类的实例作为
进程的参数。Start
方法在
WorkingDirectory
属性中指定有效值。