Exemplo n.º 1
0
        public override CommandFeedback Execute(string[] args)
        {
            if (args.Length == 1)
            {
                return(CommandFeedback.WrongNumberOfArguments);
            }

            string target       = args[1];
            string line         = args[2];
            string searchParams = args[3];

            while (line.Contains("\\n"))
            {
                line = line.Replace("\\n", "\n");
            }

            if (!Directory.Exists(target))
            {
                return(CommandFeedback.Error);
            }

            ConsoleU.WriteLine("Searching directory...", Palette.Wait);

            // target is a directory
            DirectoryInfo dir = new DirectoryInfo(target);

            FileInfo[] files = dir.GetFiles(searchParams);
            ConsoleU.WriteLine($"Found { files.Length } files. Would you like to write to the top of them?", Palette.Question);

            int changed = 0;
            int failed  = 0;

            if (consoleManager.InputYesNo())
            {
                for (int i = 0; i < files.Length; i++)
                {
                    FileInfo file = files[i];
                    try
                    {
                        string readAll = File.ReadAllText(file.FullName);
                        readAll += line;
                        File.Delete(file.FullName);
                        File.WriteAllText(file.FullName, readAll);
                        changed++;
                    }
                    catch
                    {
                        ConsoleU.WriteLine($"Failed writing to { file.Name } ", Palette.Error);
                        failed++;
                    }
                }
            }

            ConsoleU.WriteLine($"Changed { changed } files", Palette.Success);
            ConsoleU.WriteLine($"Failed to change { failed } files", failed == 0 ? Palette.Success : Palette.Error);
            ConsoleS.ReadLine();

            return(CommandFeedback.Success);
        }
Exemplo n.º 2
0
        public override CommandFeedback Execute(string[] args)
        {
            if (args.Length < 3)
            {
                return(CommandFeedback.WrongNumberOfArguments);
            }

            string target  = args[1];
            string pattern = args[2];

            if (Directory.Exists(target))
            {
                ConsoleU.WriteLine("Searching directory...", Palette.Wait);

                // target is a directory
                DirectoryInfo dir   = new DirectoryInfo(target);
                FileInfo[]    files = dir.GetFiles(pattern);

                ConsoleU.WriteLine($"Found { files.Length } files", Palette.Feedback);
                ConsoleU.WriteLine($"Command", Palette.Question);

                for (; ;)
                {
                    string command = ConsoleS.ReadLine();
                    bool   exit    = false;
                    switch (command)
                    {
                    case "3dsmaximport": {
                        StringBuilder namesBuilder = new StringBuilder();
                        for (int i = 0; i < files.Length; i++)
                        {
                            string file = files[i].FullName;
                            namesBuilder.AppendLine("ImportFile \"" + file + "\" #noPrompt");
                        }
                        string str = namesBuilder.ToString();
                        Clipboard.SetText(namesBuilder.ToString());
                        ConsoleU.WriteLine($"Setting to clipboard { str } ", Palette.Feedback);
                    }
                    break;

                    case "clipboard": {
                        StringBuilder namesBuilder = new StringBuilder();
                        for (int i = 0; i < files.Length; i++)
                        {
                            string file = files[i].FullName;
                            namesBuilder.AppendLine(file);
                        }
                        string str = namesBuilder.ToString();
                        Clipboard.SetText(str);
                        ConsoleU.WriteLine($"Setting to clipboard { str } ", Palette.Feedback);
                    }
                    break;

                    case "clipboardquotes": {
                        StringBuilder namesBuilder = new StringBuilder();
                        for (int i = 0; i < files.Length; i++)
                        {
                            string file = files[i].FullName;
                            namesBuilder.AppendLine('"' + file + '"');
                        }
                        string str = namesBuilder.ToString();
                        Clipboard.SetText(str);
                        ConsoleU.WriteLine($"Setting to clipboard { str } ", Palette.Feedback);
                    }
                    break;

                    case "copy":
                        StringCollection fileList = new StringCollection();
                        for (int i = 0; i < files.Length; i++)
                        {
                            string file = files[i].FullName;
                            ConsoleU.WriteLine($"Setting to clipboard { file } ", Palette.Feedback);
                            fileList.Add(file);
                        }
                        Clipboard.SetFileDropList(fileList);
                        break;

                    case "exit":
                        exit = true;
                        break;
                    }

                    if (exit)
                    {
                        break;
                    }
                }
            }
            else
            {
            }

            return(CommandFeedback.Success);
        }