C# - Köra cmd kommand i C# applikation
Tjena!
Efter att ha fått upp ögonen för det kända hjälpmedlet ROBOCOPY så blev jag genast sugen på att skapa ett GUI till detta.
Men som vanligt när jag skall programmera något som känns skit simpelt som springer jag på problem!
Det jag försöker göra är alltså ett program där man skriver in "sourcepath" och "targetpath" i varsin textruta. När man sedan trycker på knappen "Execute" så vill jag att ett robocopy script skall köras via CMD.exe, men det fungerar tyvärr mindre bra.
Här kommer koden (det är button3 som är intressant och behöver hjälp med.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Diagnostics;
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
string folderPath = "";
FolderBrowserDialog folderBrowserDialog1 = new FolderBrowserDialog();
if (folderBrowserDialog1.ShowDialog() == DialogResult.OK)
{
folderPath = folderBrowserDialog1.SelectedPath;
textBox1.Text = folderPath;
}
}
private void button2_Click(object sender, EventArgs e)
{
string folderPath = "";
FolderBrowserDialog folderBrowserDialog1 = new FolderBrowserDialog();
if (folderBrowserDialog1.ShowDialog() == DialogResult.OK)
{
folderPath = folderBrowserDialog1.SelectedPath;
textBox2.Text = folderPath;
}
}
private void button3_Click(object sender, EventArgs e)
{
string srcpath = textBox1.Text;
string tarpath = textBox2.Text;
string cmdcmd = @robocopy + srcpath + " " + tarpath;
ProcessStartInfo cmd = new ProcessStartInfo("cmd", cmdcmd);
cmd.RedirectStandardInput = true;
cmd.RedirectStandardOutput = true;
cmd.RedirectStandardError = true;
cmd.UseShellExecute = false;
cmd.CreateNoWindow = true;
cmd.WindowStyle = ProcessWindowStyle.Hidden;
Process console = Process.Start(cmd);
}
}
}
När jag försöker trycka på "Execute" knappen så gnäller den på sista raden "Process console = Process.Start(cmd);" över att filen inte finns.
Jag har även försökt köra programmet cmd.exe med argument men det har inte heller fungerat.
Någon som kan hjälpa mig med detta?
[Intel Core i5 2500k] [Asus P8Z68-V Pro] [2x ATI 6950 1gb] [Fractal Design XL] [Corsair HX 750W] [Corsair 16Gb 1600MHz] [OCZ SSD Vertex3 120GB]