复制文件夹上下文菜单需要用户输入

时间:2010-11-02 17:55:48

标签: windows scripting shell

我们在组织中复制了大量数据,我们喜欢使用RoboCopyPlus来获得稳健性和最后的电子邮件报告。

我已将RoboCopyPlus字符串添加到注册表中的文件夹上下文菜单中:

cmd /c robocopyplus "%1" "C:\Data" *.* /s  

但这意味着我只能将文件夹复制到C:\ Data。

提示用户输入或创建可以传递给命令的变量的最佳方法是什么?理想情况下,我想要一个文件夹浏览器对话框弹出并询问它们的位置,但接受这可能使问题复杂化,我将如何在shell中提示用户输入?

1 个答案:

答案 0 :(得分:1)

编写一个简单的应用程序让用户选择一个文件,然后使用所选的路径启动RoboCopyPlus。在上下文菜单中添加一个条目,以启动此应用程序。以下是使用FolderBrowserDialog类和Process.Start()的C#中的示例。

using System;
using System.Diagnostics;
using System.Windows.Forms;
namespace RobocopyLauncher
{
    class Launcher 
    {
        static void Main(string[] args) 
        {
            FolderBrowserDialog browser = new FolderBrowserDialog();
            if (browser.ShowDialog() == DialogResult.OK && args.Length == 1)
            {
                // Not sure of the exact command but it would be 
                // something like this
                Process.Start(string.Format("robocopyplus \"{0}\" \"{1}\"", 
                    args[0], browser.SelectedPath);
            }
        }
    }
}