Nous copions beaucoup de données dans notre organisation, et nous aimons utiliser RoboCopyPlus pour la robustesse et les rapports de courrier électronique à la fin.Le menu contextuel de copie de dossier nécessite une saisie de l'utilisateur
J'ai ajouté la chaîne RoboCopyPlus dans le menu contextuel du dossier dans le Registre comme:
cmd /c robocopyplus "%1" "C:\Data" *.* /s
Mais cela signifie que je ne peux copier un dossier C: \ Data.
Quelle est la meilleure façon de demander une entrée utilisateur ou de créer une variable que je peux transmettre à la commande? Idéalement, je voudrais qu'un dialogue de navigateur de dossier apparaisse et leur demande l'emplacement, mais en acceptant que cela complique probablement la question, comment pourrais-je inviter l'utilisateur à entrer dans le shell?
Merci Donut. Cela me rapproche vraiment - je devais ajouter [STAThread] au-dessus de la méthode Main, mais le FolderBrowser apparaîtra maintenant. Malheureusement, cela ne va pas démarrer le processus. Je suppose que c'est parce que la chaîne appelée par Process.Start n'est pas correcte, mais je ne peux pas trouver un moyen de vérifier exactement ce que la chaîne sort. Pourriez-vous me dire ce que devraient être {0} et {1}? –
David, je devrais voir la documentation de RoboCopyPlus, et je ne l'ai pas trouvée en ligne. Dans mon exemple, '{0}' est 'args [0]' - le chemin que vous essayez de copier, et '{1}' est 'browser.SelectedPath' - le chemin que vous essayez de copier à. Avez-vous la documentation des arguments de la ligne de commande que RoboCopyPlus prend en charge n'importe où? – Donut
Donut, RoboCopyPlus est un wrapper pour RoboCopy, et utilise la même syntaxe: http://www.mydigitallife.info/2007/05/07/robocopy-syntax-command-line-switches-and-examples/ vous donne les détails pour la syntaxe, mais c'est fondamentalement comme vous l'avez spécifié. La syntaxe exacte transmise au processus est donc (à l'exclusion des crochets) [robocopy "C: \ Data \" "C: \ Data2 \"]. Si je remplace les deux arguments par des chemins de dossier codés en dur, alors lors de l'exécution du processus, il devrait copier les données, n'est-ce pas? –