簡體   English   中英

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

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

我通過以下代碼使用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();

但是,我也通過命令來更改目錄。

問題:

  1. 如何更改目錄位置?
  2. Cmd提示將在打開后始終顯示...

請指導我擺脫這些問題......

要更改啟動目錄,可以通過將p.StartInfo.WorkingDirectory設置為您感興趣的目錄來更改它。目錄未更改的原因是參數/cd:\\test 而是嘗試/c cd d:\\test

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

您可以通過將p.StartInfo.WindowStyle設置為Hidden來隱藏命令提示符,以避免顯示該窗口。

 p.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;

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

您可以使用p.StandardInput.WriteLine將命令發送到cmd窗口。 為此,只需將p.StartInfo.RedirectStandardOutput設置為ture。 如下

        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:");

請改用System.IO.Directory.SetCurrentDirectory

你也可以檢查一下

這篇文章

processStartInfo .WorkingDirectory = @"c:\";

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM