Trädvy Permalänk
Medlem
Plats
Göteborg
Registrerad
Jan 2010

C# öppna cmd / powershell

Tjena
jo jag håller på att försöka lära mig väldigt basic C#
jag håller på att koda ett program till mig själv som ska hjälpa mig med ny formaterade datorer

just nu fungerar allt som det ska men jag vill kunna avancera lite till att lära mig öppna cmd via en knapp

funktionen ska vara att den öppnar powershell och sedan så skriver den en rad som avinstallerar t.ex minecraft och candycrush mm

här är koden till powershell för att ta bort "SolitaireSolitaire
Microsoft Solitaire Collection: Get-AppxPackage *solitairecollection* | Remove-AppxPackage

men hur ska man få programmet att öppna powershell och så skriver den in koden automatiskt

Tack på förhand mvh

CPU: i7 7700k 4.4GHz |GPU:GTX 1070 ROG |Moderkort: P8P67 Deluxe |Kylning: Corsair H60 V2 |RAM: Corsair ddr4 16GB 3000 mhz |SSD:m.2 960 evo |OS: windows 10 Pro
Online:| Overwatch(master) | CS:GO | Battlefield 1 | Quake 3/live | PUBG |
Bredband | Fraktfritt Inet | hemsida| swec bb-koder

Trädvy Permalänk
Medlem
Plats
Stockholm
Registrerad
Aug 2013

@Doctor9:
En snabb googling så hittar du ditt svar, t.ex. här eller här

Trädvy Permalänk
Medlem
Registrerad
Jul 2008

Om du bara är ute efter att köra PowerShell-kommandon och inte behöver öppna ett fönster går det att utnyttja System.Management.Automation från PowerShell SDK och skriva någonting liknande

System.Management.Automation.PowerShell .Create() .AddCommand("Get-AppxPackage") .AddParameter("Name", "*solitairecollection*") .AddCommand("Remove-AppxPackage") .Invoke();

Ej testkört.

Trädvy Permalänk
Medlem
Plats
Göteborg
Registrerad
Jan 2010
Skrivet av zaibuf:
Skrivet av johho:

/////////////////////////////////////////////////////////////////////////////

jag har testat allt men det fungerar inte.. den hakar upp sig på

"System.Management.Automation.PowerShell"

men jag hittade ett annat sätt att öppna PowerShell med hjälp av denna koden

System.Diagnostics.Process process = new System.Diagnostics.Process(); System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo(); startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Normal; startInfo.FileName = "powershell.exe"; process.StartInfo = startInfo; process.Start();

powershell startar felfritt utan problem fast jag vet inte hur jag lägger till koder så att den fortsätter köra

Get-AppxPackage *solitairecollection* | Remove-AppxPackage

tack på förhand

##########
edit

jag hittade just nu testar jag "ipconfig" commandet och den funkar men den stänger ner powershell rutan så fort den har skrivit "ipconfig"

System.Diagnostics.Process process = new System.Diagnostics.Process(); System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo(); startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Normal; startInfo.FileName = "powershell.exe"; startInfo.Arguments = "ipconfig"; process.StartInfo = startInfo; process.Start();

men hur skriver man flera rader ?
tex

ipconfig /release Flushdns ipconfig /renew

CPU: i7 7700k 4.4GHz |GPU:GTX 1070 ROG |Moderkort: P8P67 Deluxe |Kylning: Corsair H60 V2 |RAM: Corsair ddr4 16GB 3000 mhz |SSD:m.2 960 evo |OS: windows 10 Pro
Online:| Overwatch(master) | CS:GO | Battlefield 1 | Quake 3/live | PUBG |
Bredband | Fraktfritt Inet | hemsida| swec bb-koder

Trädvy Permalänk
Medlem
Plats
Stockholm
Registrerad
Aug 2013

@Doctor9: du har en prop som heter Arguments på ditt starterinfo object. Testa slänga in det där.

ProcessStartInfo startInfo = new ProcessStartInfo(); startInfo.FileName = "powershell.exe"; startInfo.Arguments = "Get-AppxPackage *solitairecollection* | Remove-AppxPackage" startInfo.RedirectStandardOutput = true; startInfo.RedirectStandardError = true; startInfo.UseShellExecute = false; startInfo.CreateNoWindow = true; startInfo.Verb = "runas"; Process process = new Process(); process.StartInfo = startInfo; process.Start();

Annars råder jag nog dig att googla mer och läsa dokumentationen, finns med 100% säkerhet ett svar till dina problem där ute

Trädvy Permalänk
Medlem
Plats
Göteborg
Registrerad
Jan 2010

Tack för allt hehe
jag vart lite snabb på forumet där

hittade en annan kod till mitt problem ifall någon annan kanske söker

System.Diagnostics.Process process = new System.Diagnostics.Process(); System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo(); startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Normal; startInfo.FileName = "powershell.exe"; startInfo.Arguments = "ipconfig /release"; startInfo.Arguments = "flushdns"; startInfo.Arguments = "ipconfig /renew"; process.StartInfo = startInfo; process.Start();

CPU: i7 7700k 4.4GHz |GPU:GTX 1070 ROG |Moderkort: P8P67 Deluxe |Kylning: Corsair H60 V2 |RAM: Corsair ddr4 16GB 3000 mhz |SSD:m.2 960 evo |OS: windows 10 Pro
Online:| Overwatch(master) | CS:GO | Battlefield 1 | Quake 3/live | PUBG |
Bredband | Fraktfritt Inet | hemsida| swec bb-koder

Trädvy Permalänk
Medlem
Plats
127.0.0.1
Registrerad
Sep 2003

@Doctor9: Det ser ut som du skriver över arguments där, jag tippar på att endast den sista raden körs.

1: Intel i7-3930K | 32GB Corsair Dominator GT | Asus Rampage IV Extreme x79 | 2 x 1080 GameRock Premium 8GB | 2 x Samsung Pro 840 512GB | Corsair AX1200i | BenQ XL2411 24" / W1070 135" | Bose QC25 | Windows 10 Pro x64 | HTC Vive |
2: Intel Core i7-4700HQ | 32GB RAM | Intel HM87 Express | GTX 780M | 17" | Windows 10 Pro x64 |

Trädvy Permalänk
Medlem
Plats
Göteborg
Registrerad
Jan 2010
Skrivet av Dalton Sleeper:

@Doctor9: Det ser ut som du skriver över arguments där, jag tippar på att endast den sista raden körs.

aha, det känns som en bra förklaring..
efter som att internet inte blir ifrån kopplat och att scriptet körs för fort

har du en lösning på detta ?

CPU: i7 7700k 4.4GHz |GPU:GTX 1070 ROG |Moderkort: P8P67 Deluxe |Kylning: Corsair H60 V2 |RAM: Corsair ddr4 16GB 3000 mhz |SSD:m.2 960 evo |OS: windows 10 Pro
Online:| Overwatch(master) | CS:GO | Battlefield 1 | Quake 3/live | PUBG |
Bredband | Fraktfritt Inet | hemsida| swec bb-koder

Trädvy Permalänk
Medlem
Plats
127.0.0.1
Registrerad
Sep 2003

@Doctor9: Kanske är smidigare att skapa en bat/ps1 fil innehållande ditt script och skicka in den till cmd/powershell

1: Intel i7-3930K | 32GB Corsair Dominator GT | Asus Rampage IV Extreme x79 | 2 x 1080 GameRock Premium 8GB | 2 x Samsung Pro 840 512GB | Corsair AX1200i | BenQ XL2411 24" / W1070 135" | Bose QC25 | Windows 10 Pro x64 | HTC Vive |
2: Intel Core i7-4700HQ | 32GB RAM | Intel HM87 Express | GTX 780M | 17" | Windows 10 Pro x64 |

Trädvy Permalänk
Medlem
Plats
Göteborg
Registrerad
Jan 2010

oj, nu blev det överkurs här ?
jag har ingen kunskap om kodning.

men kan man inte kringå detta på något sätt ? så att den kör flera rader ? eller måste man se till att scriptet väntar en viss tid innan nästa linje körs ?

CPU: i7 7700k 4.4GHz |GPU:GTX 1070 ROG |Moderkort: P8P67 Deluxe |Kylning: Corsair H60 V2 |RAM: Corsair ddr4 16GB 3000 mhz |SSD:m.2 960 evo |OS: windows 10 Pro
Online:| Overwatch(master) | CS:GO | Battlefield 1 | Quake 3/live | PUBG |
Bredband | Fraktfritt Inet | hemsida| swec bb-koder

Trädvy Permalänk
Medlem
Plats
127.0.0.1
Registrerad
Sep 2003

Jag tänkte mer på att du flyttar dina tre rader in i en fil, typ mittPowershellScript.ps1, och sedan i Arguments så skickar du in -File följt av pathen till denna fil.

typ
startInfo.Arguments = " -File " + "c:\\mittPowershellScript.ps1";

(otestat)

https://docs.microsoft.com/en-us/powershell/scripting/compone...

Tror också att du skulle kunna addera "`r`n" (radbrytning) mellan argumenten annars, åter igen otestat
startInfo.Arguments = "rad1" + "`r`n" + "rad2" + "`r`n" + "rad3";

1: Intel i7-3930K | 32GB Corsair Dominator GT | Asus Rampage IV Extreme x79 | 2 x 1080 GameRock Premium 8GB | 2 x Samsung Pro 840 512GB | Corsair AX1200i | BenQ XL2411 24" / W1070 135" | Bose QC25 | Windows 10 Pro x64 | HTC Vive |
2: Intel Core i7-4700HQ | 32GB RAM | Intel HM87 Express | GTX 780M | 17" | Windows 10 Pro x64 |

Trädvy Permalänk
Medlem
Registrerad
Nov 2018

@Doctor9: du kan köra flera commands I powershell genom att separerar dem med semicolon.

https://www.tenforums.com/performance-maintenance/109154-run-...

Trädvy Permalänk
Medlem
Plats
127.0.0.1
Registrerad
Sep 2003

@Anriko: Se där, ännu enklare Jag är mer eller mindre noob på powershell också och har endast använt det till några få saker på jobbet. Förvånad vad mycket man kan åstadkomma med powershell!

1: Intel i7-3930K | 32GB Corsair Dominator GT | Asus Rampage IV Extreme x79 | 2 x 1080 GameRock Premium 8GB | 2 x Samsung Pro 840 512GB | Corsair AX1200i | BenQ XL2411 24" / W1070 135" | Bose QC25 | Windows 10 Pro x64 | HTC Vive |
2: Intel Core i7-4700HQ | 32GB RAM | Intel HM87 Express | GTX 780M | 17" | Windows 10 Pro x64 |

Trädvy Permalänk
Medlem
Registrerad
Okt 2002

Litet sidospår:
Om det endast är CMD och Powershell-kommandon som kommer köras från fönstret kan du nästan lika väl bygga fönstret i Powershell också så att allt är samma språk 😀 Man kan bygga traditionella fönster eller med WPF:

https://blogs.technet.microsoft.com/stephap/2012/04/23/buildi...

https://4sysops.com/archives/create-a-gui-for-your-powershell...

Dock, jag har läst att du vill lära dig mer om C# så detta kanske inte är relevant just nu, men kanske bra att veta.
Du kan också göra Powershell-script till applikationer (.exe).

Skickades från m.sweclockers.com

-:| i7-3930K | P9X79 Deluxe | 32GB 1600Mhz | Corsair TX750W |:-
-:| Ryzen7 2700X | Strix x470-I | 32GB 3200Mhz | GTX1070 | EVGA G2 550W |:-
-:| Citera för svar |:-

Trädvy Permalänk
Medlem
Registrerad
Jul 2008
Skrivet av Doctor9:

jag har testat allt men det fungerar inte.. den hakar upp sig på

"System.Management.Automation.PowerShell"

Har du lagt till en referens till System.Management.Automation?

C:\Program Files (x86)\Reference Assemblies\Microsoft\WindowsPowerShell\3.0\System.Management.Automation.dll