一、目的、構想
1.C# winfrom編譯的tool 運行一個powershell文件。
2.只需要運行即可,不需要返回值。
3.網上部分資料需要額外添加dll。
3.已經有cmd執行命令的函數,能否直接在cmd運行?
4.在cmd黑色窗口輸入powershell 能進入powershell。
?
二、code實現
因為系統會默認禁止執行外部ps1文件,需要設置。
//設置執行策略
string cmd = "powershell Set-ExecutionPolicy RemoteSigned";
CommonLib.RunCMDcommand(cmd, localCreateGroupFolder);//設置執行策略
cmd = "powershell Set-ExecutionPolicy -ExecutionPolicy Unrestricted";
CommonLib.RunCMDcommand(cmd, localCreateGroupFolder);// 執行ps1文檔
cmd = "powershell " + excuteCreateGroup;
CommonLib.RunCMDcommand(cmd, localCreateGroupFolder);
public static void RunCMDcommand(string command, string workingDirectory){using (Process pc = new Process()){pc.StartInfo.FileName = "cmd.exe";pc.StartInfo.CreateNoWindow = false;//隱藏窗口運行pc.StartInfo.RedirectStandardError = true;//重定向錯誤流pc.StartInfo.RedirectStandardInput = true;//重定向輸入流pc.StartInfo.RedirectStandardOutput = true;//重定向輸出流pc.StartInfo.UseShellExecute = false;pc.StartInfo.WorkingDirectory = workingDirectory;pc.Start();//輸入CMD命令pc.StandardInput.WriteLine(command);pc.StandardInput.WriteLine("exit");//結束執行,很重要的pc.StandardInput.AutoFlush = true;//outPut = pc.StandardOutput.ReadToEnd();//讀取結果 //注釋可能繼續跑,app不會等待卡死 pc.WaitForExit();pc.Close();}}
?