public ConsoleExecuteResult Save(string name)
{
var path = Path.GetDirectoryName(name);
if (string.IsNullOrEmpty(path)) return new ConsoleExecuteResult("invalid path");
if (!Directory.Exists(path))
{
Directory.CreateDirectory(path);
}
var values = new List<string>(_commands.Count);
var list = _commands.Keys.ToList();
list.Sort();
// Loop through keys.
values.AddRange(list.Select(key => _commands[key]));
File.WriteAllLines(name, values);
return new ConsoleExecuteResult("Saved");
}