国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
C#程序調(diào)用cmd執(zhí)行命令

對于C#通過程序來調(diào)用cmd命令的操作,網(wǎng)上有很多類似的文章,但很多都不行,竟是漫天的拷貝。我自己測試整理了一下。

代碼:

            string str = Console.ReadLine();            System.Diagnostics.Process p = new System.Diagnostics.Process();            p.StartInfo.FileName = "cmd.exe";            p.StartInfo.UseShellExecute = false;    //是否使用操作系統(tǒng)shell啟動            p.StartInfo.RedirectStandardInput = true;//接受來自調(diào)用程序的輸入信息            p.StartInfo.RedirectStandardOutput = true;//由調(diào)用程序獲取輸出信息            p.StartInfo.RedirectStandardError = true;//重定向標(biāo)準(zhǔn)錯誤輸出            p.StartInfo.CreateNoWindow = true;//不顯示程序窗口            p.Start();//啟動程序            //向cmd窗口發(fā)送輸入信息            p.StandardInput.WriteLine(str + "&exit");            p.StandardInput.AutoFlush = true;            //p.StandardInput.WriteLine("exit");            //向標(biāo)準(zhǔn)輸入寫入要執(zhí)行的命令。這里使用&是批處理命令的符號,表示前面一個命令不管是否執(zhí)行成功都執(zhí)行后面(exit)命令,如果不執(zhí)行exit命令,后面調(diào)用ReadToEnd()方法會假死            //同類的符號還有&&和||前者表示必須前一個命令執(zhí)行成功才會執(zhí)行后面的命令,后者表示必須前一個命令執(zhí)行失敗才會執(zhí)行后面的命令            //獲取cmd窗口的輸出信息            string output = p.StandardOutput.ReadToEnd();            //StreamReader reader = p.StandardOutput;            //string line=reader.ReadLine();            //while (!reader.EndOfStream)            //{            //    str += line + "  ";            //    line = reader.ReadLine();            //}            p.WaitForExit();//等待程序執(zhí)行完退出進(jìn)程            p.Close();            Console.WriteLine(output);

程序運(yùn)行結(jié)果:

 

需要提醒注意的一個地方就是:在前面的命令執(zhí)行完成后,要加exit命令,否則后面調(diào)用ReadtoEnd()命令會假死。

我在之前測試的時候沒有加exit命令,輸入其他命令后窗口就假死了,也沒有輸出內(nèi)容。

對于執(zhí)行cmd命令時如何以管理員身份運(yùn)行,可以看我上一篇文章: C#如何以管理員身份運(yùn)行程序 - 酷小孩 - 博客園

 

2014-7-28 新增:

另一種C#調(diào)用cmd命令的方法,不過這種方法在執(zhí)行時會“閃一下” 黑窗口,各位在使用時可以按喜好來調(diào)用。

        /// <summary>        /// 運(yùn)行cmd命令        /// 會顯示命令窗口        /// </summary>        /// <param name="cmdExe">指定應(yīng)用程序的完整路徑</param>        /// <param name="cmdStr">執(zhí)行命令行參數(shù)</param>        static bool RunCmd(string cmdExe, string cmdStr)        {            bool result = false;            try            {                using (Process myPro = new Process())                {                    //指定啟動進(jìn)程是調(diào)用的應(yīng)用程序和命令行參數(shù)                    ProcessStartInfo psi = new ProcessStartInfo(cmdExe, cmdStr);                    myPro.StartInfo = psi;                    myPro.Start();                    myPro.WaitForExit();                    result = true;                }            }            catch            {            }            return result;        }        /// <summary>        /// 運(yùn)行cmd命令        /// 不顯示命令窗口        /// </summary>        /// <param name="cmdExe">指定應(yīng)用程序的完整路徑</param>        /// <param name="cmdStr">執(zhí)行命令行參數(shù)</param>        static bool RunCmd2(string cmdExe, string cmdStr)        {            bool result = false;            try            {                using (Process myPro = new Process())                {                    myPro.StartInfo.FileName = "cmd.exe";                    myPro.StartInfo.UseShellExecute = false;                    myPro.StartInfo.RedirectStandardInput = true;                    myPro.StartInfo.RedirectStandardOutput = true;                    myPro.StartInfo.RedirectStandardError = true;                    myPro.StartInfo.CreateNoWindow = true;                    myPro.Start();                    //如果調(diào)用程序路徑中有空格時,cmd命令執(zhí)行失敗,可以用雙引號括起來 ,在這里兩個引號表示一個引號(轉(zhuǎn)義)                    string str = string.Format(@"""{0}"" {1} {2}", cmdExe, cmdStr, "&exit");                                      myPro.StandardInput.WriteLine(str);                    myPro.StandardInput.AutoFlush = true;                    myPro.WaitForExit();                    result = true;                }            }            catch            {            }            return result;        }    
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
C# 調(diào)用命令行執(zhí)行Cmd命令的操作
C#模擬cmd
C#執(zhí)行DOS命令(CMD命令)
C#啟動進(jìn)程之Process
C# rar壓縮 解壓縮 文件
C#調(diào)用7z實(shí)現(xiàn)文件的壓縮與解壓
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服