Avatar billede mikker21 Juniormester
08. juni 2010 - 12:20 Der er 9 kommentarer og
1 løsning

Dos-kommando i C#...

Hej,

Jeg er begyndt at lære C#, da jeg i forbindelse med mit nye arbejde for brug en smule kendskab til det. Google er min ven, og jeg har fundet en del godt online-materiale.

Jeg har dog en konkret sag, hvor jeg har brug for at lave en knap, som udfører en DOS-kommando.

At lave knappen er jo nemt, men jeg har prøvet alverdens ting, og har stadig ikke fundet ud af hvordan man får den til at afvikle følgende dos-kommando:

netsh int ip set address "Front-end" static 192.168.151.50 255.255.255.0

Det er en kommando som ændrer IP adressen på et netværkskort ved navn "Front-end". Kommandoen virker perfekt i DOS.

Derudover har jeg brug for følgende kommandoer:

netsh int ip set address "Front-end" dhcp

og denne

xcopy "G:\3050\test\*.*" "C:\Documents and Settings\All Users\Application Data\test" /S /E /C


Jeg er ikke klar over om man kan gøre så simpelt som i DOS, men jeg håber at I kan hjælpe mig. Og det må gerne skæres lidt ud i pap, da jeg som sagt er new in business.

Og ja - jeg kunne jo bare lave en BAT-fil...men jeg vil lære det i C# :-)

På forhånd tak.

Mvh Michael
Avatar billede bvli Praktikant
08. juni 2010 - 13:14 #1
Hej.

System.Diagnostics.Process.Start("netsh", "int ip set address \"Front-end\" static 192.168.151.50 255.255.255.0");
Avatar billede ole155 Nybegynder
08. juni 2010 - 13:18 #2
Prøv det her:

System.Diagnostics.ProcessStartInfo p = new System.Diagnostics.ProcessStartInfo();
            p.FileName = @"C:\WINDOWS\system32\netsh.exe";
            p.CreateNoWindow = false;
            p.UseShellExecute = false;
            p.FileName = "dcm2jpg.exe";
            p.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden;
            p.Arguments = "int ip set address \"Front-end\" static 192.168.151.50 255.255.255.0";

            using (System.Diagnostics.Process exeprocess = System.Diagnostics.Process.Start(p))
            {
                exeprocess.WaitForExit();
            }
Avatar billede mikker21 Juniormester
08. juni 2010 - 13:53 #3
TAK!

Det virkede perfekt, og var tilmed ret simpelt. Findes der en ligeså simpel måde at løse mit "copy-problem" som er beskrevet længere nede i mit indlæg?

Mvh Michael
Avatar billede bvli Praktikant
08. juni 2010 - 14:15 #4
Øh??

Jeg ville nok implementere det i C# i stedet for at kalde ud af mit program.. men har du f.eks. overvejet:

System.Diagnostics.Process.Start("xcopy" "\"G:\3050\test\*.*\" \"C:\Documents and Settings\All Users\Application Data\test\" /S /E /C");

? :)
Avatar billede mikker21 Juniormester
08. juni 2010 - 14:22 #5
Hej igen (bvli),

Jeg har ikke overvejet så meget. Når jeg søgte på google efter simple copy kommandoer til C# synes jeg at svarene var meget komplicerede. Dit foreslag er jo så simpelt som jeg gerne vil have det. Vil det sige at man kan køre alle DOS-kommandoer på den måde?

Du kan jeg lave så jeg kan acceptere dit svar :-)

Mvh Michael
Avatar billede bvli Praktikant
08. juni 2010 - 14:30 #6
Ja - du kan køre 'alle' doskommandoer på den måde. Men måske du skulle overveje at minimere det. Det er ikke det hurtigste i verden at gøre det på den måde.
Avatar billede mikker21 Juniormester
08. juni 2010 - 14:39 #7
Super!

Copy-linjen virker dog ikke. Den skriver fejlen "Unrecognized escape sequence" en del gange...
Avatar billede mikker21 Juniormester
08. juni 2010 - 14:45 #8
+ en masse andre fejl...
Avatar billede mikker21 Juniormester
08. juni 2010 - 15:08 #9
Fandt selv fejlen. Der skal åbenbart stå \\ i stedet for \ alle steder. Men tak for svaret alligevel!
Avatar billede bvli Praktikant
08. juni 2010 - 15:10 #10
Ok - den blev lige lavet lidt hurtigt i hovedet :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester