简体   繁体   English

如何使用C#更改命令提示符中的目录位置?

[英]how to change the directory location in command prompt using C#?

I have successfully opened command prompt window using C# through the following code. 我通过以下代码使用C#成功打开了命令提示符窗口。

    Process p = new Process();
    p.StartInfo.FileName = "cmd.exe";
    p.StartInfo.WorkingDirectory = @"d:\pdf2xml";
    p.StartInfo.WindowStyle = ProcessWindowStyle.Normal;
    p.StartInfo.UseShellExecute = false;
    p.StartInfo.RedirectStandardOutput = true;
    p.StartInfo.RedirectStandardInput = true;


    p.Start();

    p.StandardInput.WriteLine(@"pdftoxml.win32.1.2.7 -annotation "+filename);

    p.StandardInput.WriteLine(@"cd D:\python-source\ds-xmlStudio-1.0-py27");

    p.StandardInput.WriteLine(@"main.py -i example-8.xml -o outp.xml");

    p.WaitForExit();

But, i have also passed command to change the directory. 但是,我也通过命令来更改目录。

problems: 问题:

  1. how to change the directory location? 如何更改目录位置?
  2. Cmd prompt will be shown always after opened... Cmd提示将在打开后始终显示...

Please guide me to get out of those issue... 请指导我摆脱这些问题......

To change the startup directory, you can change it by setting p.StartInfo.WorkingDirectory to the directory that you are interested in. The reason that your directory is not changing is because the argument /cd:\\test . 要更改启动目录,可以通过将p.StartInfo.WorkingDirectory设置为您感兴趣的目录来更改它。目录未更改的原因是参数/cd:\\test Instead try /c cd d:\\test 而是尝试/c cd d:\\test

 Process p = new Process();
 p.StartInfo.FileName = "cmd.exe";
 p.StartInfo.WorkingDirectory = @"C:\";
 p.StartInfo.UseShellExecute = false;
 ...
 p.Start();

You can hide the command prompt by setting p.StartInfo.WindowStyle to Hidden to avoid showing that window. 您可以通过将p.StartInfo.WindowStyle设置为Hidden来隐藏命令提示符,以避免显示该窗口。

 p.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;

http://msdn.microsoft.com/en-us/library/system.diagnostics.processstartinfo.windowstyle.aspx http://msdn.microsoft.com/en-us/library/system.diagnostics.processstartinfo.windowstyle.aspx

You can use p.StandardInput.WriteLine to send commands to cmd window. 您可以使用p.StandardInput.WriteLine将命令发送到cmd窗口。 For this just set the p.StartInfo.RedirectStandardOutput to ture. 为此,只需将p.StartInfo.RedirectStandardOutput设置为ture。 like below 如下

        Process p = new Process();
        p.StartInfo.FileName = "cmd.exe";
        //p.StartInfo.Arguments = @"/c D:\\pdf2xml";
        p.StartInfo.UseShellExecute = false;
        p.StartInfo.RedirectStandardOutput = true;
        p.StartInfo.RedirectStandardInput = true;
        p.Start();

        p.StandardInput.WriteLine(@"cd D:\pdf2xml");
        p.StandardInput.WriteLine("d:");

use System.IO.Directory.SetCurrentDirectory instead 请改用System.IO.Directory.SetCurrentDirectory

You may also Check this 你也可以检查一下

and this post 这篇文章

processStartInfo .WorkingDirectory = @"c:\";

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM