Kørsel af Robocopy.exe via C#
HejC# driller mig lidt i forbindelse med at jeg gerne vil køre et job med Robocopy. Jeg har andre instanser som fungerer fint, og mistænker mellemrum i stinavnet som værende synderen. Dog er det ikke lykkedes mig, med alle de metoder jeg har prøvet med, samt fundet på nettet, at få det til at fungere. Jeg skal lave en spejling af en indholdet i en mappe fra en netværksplacering til en ekstern USB-HDD. Her er koden fra C#
private void button6_Click(object sender, EventArgs e)
{
ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.FileName = @"C:\WINDOWS\System32\Robocopy.exe";
startInfo.Arguments = "\Maskine\C\Programmer (egne)\Dropbox\Bruger\Dropbox" "B:\201x-xx-xx BACKUP AF DROPBOX" "/MIR /LOG:BACKUP_DROPBOX_TIL_BACKUPDREV.txt /TEE";
Process.Start(startInfo);
}
Stien skrevet i "startInfo.Arguments =" svarer til stien jeg skal skrive direkte i Robocopy, for at det fungerer korrekt. Dette er jeg klar over at man ikke kan i C#. For at forbigå "Unexpected escape sequence" fejlen, skal der benyttes enten dobbelt \\ gennem hele stien eller @ foran stien/stierne. Men dette kan jeg heller ikke få til at virke.
Jeg har lavet en WinForm med knapper, som skal aktivere et job ved tryk. Når jeg trykker på pågældende knap, starter Robocopy op og lukker lynhurtigt ned, før end jeg kan se nogen fejlbeskrivelse. Jeg kan derfor ikke beskrive fejlen nærmere, med mindre der er en som kan hjælpe med at sætte en form for break ind, så vinduet ikke lukker ned grundet fejl.
For at opsummere, så har jeg prøvet en del:
startInfo.Arguments = "\\Maskine\\C\\Programmer (egne)\\Dropbox\\Bruger\\Dropbox "B:\\201x-xx-xx BACKUP AF DROPBOX /MIR /LOG:BACKUP_DROPBOX_TIL_BACKUPDREV.txt /TEE";
startInfo.Arguments = "\\Maskine\\C\\Programmer (egne)\\Dropbox\\Bruger\\Dropbox" "B:\\201x-xx-xx BACKUP AF DROPBOX" "/MIR /LOG:BACKUP_DROPBOX_TIL_BACKUPDREV.txt /TEE";
startInfo.Arguments = "\\Maskine\\C\\Programmer (egne)\\Dropbox\\Bruger\\Dropbox" + " " + "B:\\201x-xx-xx BACKUP AF DROPBOX" + " " + "/MIR /LOG:BACKUP_DROPBOX_TIL_BACKUPDREV.txt /TEE";
@"\Maskine\C\Programmer (egne)\Dropbox\Bruger\Dropbox @"B:\201x-xx-xx BACKUP AF DROPBOX /MIR /LOG:BACKUP_DROPBOX_TIL_BACKUPDREV.txt /TEE";
startInfo.Arguments = @"\Maskine\C\Programmer (egne)\Dropbox\Bruger\Dropbox" @"B:\201x-xx-xx BACKUP AF DROPBOX" "/MIR /LOG:BACKUP_DROPBOX_TIL_BACKUPDREV.txt /TEE";
startInfo.Arguments = @"\Maskine\C\Programmer (egne)\Dropbox\Bruger\Dropbox" + " " + @"B:\201x-xx-xx BACKUP AF DROPBOX" + " " + "/MIR /LOG:BACKUP_DROPBOX_TIL_BACKUPDREV.txt /TEE";
Jeg er løbet tør for idéer, og kan ikke finde flere løsninger at prøve fra nettet.
I en anden instans, har jeg fx:
startInfo.Arguments = @"\\192.168.0.1\hd_samsung_hm500ji\Musik\Musik\ *.mp3 \\Maskine\C\Musik\Musik\ /MIR /LOG:SYNKRONISER_MUSIK_TIL_MASKINE.txt /TEE";
...hvilket fungerer fint. Det er derfor at jeg mistænker stien med mellemrum.
Mvh
Frank