Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.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
C# 从unity c执行命令行提示符时,驱动器未更改#_C#_Unity3d_Command Line_Cmd_Process - Fatal编程技术网

C# 从unity c执行命令行提示符时,驱动器未更改#

C# 从unity c执行命令行提示符时,驱动器未更改#,c#,unity3d,command-line,cmd,process,C#,Unity3d,Command Line,Cmd,Process,我试图使用C#在unity中执行命令行提示符,但首先我需要将存储游戏的驱动器从G:\FileOne\Game1更改为C:\Users\HP\Documents,然后执行应该在Documents下的命令,这就是我一直在做的: ProcessStartInfo proc = new ProcessStartInfo ("cmd.exe"); proc.UseShellExecute = false; proc.RedirectStandardOutput = true;

我试图使用C#在unity中执行命令行提示符,但首先我需要将存储游戏的驱动器从
G:\FileOne\Game1
更改为
C:\Users\HP\Documents
,然后执行应该在Documents下的命令,这就是我一直在做的:

    ProcessStartInfo proc = new ProcessStartInfo ("cmd.exe");
    proc.UseShellExecute = false;
    proc.RedirectStandardOutput = true;
    proc.CreateNoWindow = true;
    proc.RedirectStandardInput = true;
    var process = Process.Start (proc);
    process.StandardInput.WriteLine(@"C:");
    process.StandardInput.WriteLine(@"cd C:\Users\HP\Documents");
    process.StandardInput.WriteLine (@"MyCommandLine");
    process.StandardInput.WriteLine("exit");
    string s = process.StandardOutput.ReadToEnd ();
    print (s);
我将输出存储到一个字符串变量s中,得到的结果如下:

Microsoft Windows [version 10.0.16299.371]
(c) 2017 Microsoft Corporation. Tous droits r�serv�s.

G:\FileOne\Game1>C:

G:\FileOne\Game1>cd C:\Users\HP\Documents

G:\FileOne\Game1>MyCommandLine

G:\FileOne\Game1>exit
myCommand命令行应该创建一个文本文件,但是您可以看到驱动器没有改变,文本文件也没有创建


有人能帮我吗。

有什么原因你不只是在ProcessStartInfo上设置工作目录吗?不能取消重新启动,你要的是什么!尝试使用
CD/D“C:\Users\HP\Documents”
同时更改设备和目录。实际上,我必须更改代码,并使用ProcessStartInfo类使其工作,谢谢