Мы копируем много данных в нашей организации, и нам нравится использовать RoboCopyPlus для обеспечения надежности и отчетов по электронной почте в конце.Скопировать контекстное меню папки требуется вход пользователя
Я добавил строку RoboCopyPlus в контекстное меню папки в реестре:
cmd /c robocopyplus "%1" "C:\Data" *.* /s
Но это означает, что я могу только скопировать папку C: \ Data.
Каков наилучший способ запросить ввод пользователя или создать переменную, которую я могу передать команде? В идеале я бы хотел, чтобы диалог браузера папок всплывал и спрашивал их о местоположении, но, признавая, что это, вероятно, усложняет этот вопрос, как я могу запросить ввод пользователя в оболочку?
Спасибо, пончик. Это меня очень близко - мне пришлось добавить [STAThread] выше метода Main, но теперь он отобразит FolderBrowser. К сожалению, он не начнет процесс. Я подозреваю, что это потому, что строка, вызываемая Process.Start, неверна, но я не могу найти способ точно проверить, что выводит строка. Не могли бы вы рассказать мне, что {0} и {1}? –
Дэвид, мне нужно будет увидеть документацию для RoboCopyPlus, и я не смог найти его в Интернете. В моем примере '{0}' is 'args [0]' - путь, который вы пытаетесь скопировать, и '{1}' is 'browser.SelectedPath' - путь, который вы пытаетесь скопировать к. У вас есть документация аргументов командной строки, которые поддерживает RoboCopyPlus? – Donut
Donut, RoboCopyPlus - это оболочка для RoboCopy и использует тот же синтаксис: http://www.mydigitallife.info/2007/05/07/robocopy-syntax-command-line-switches-and-examples/ дает вам подробную информацию для синтаксиса, но это в основном, как вы указали. Точный синтаксис, передаваемый процессу, поэтому (исключая квадратные скобки) [robocopy "C: \ Data \" "C: \ Data2 \"]. Если я заменил два аргумента жестко закодированными папками, то при запуске процесса он должен скопировать данные, не так ли? –