diff --git a/src/modules/launcher/Plugins/Wox.Plugin.Shell/Main.cs b/src/modules/launcher/Plugins/Wox.Plugin.Shell/Main.cs index c474ca51a0..252f04022d 100644 --- a/src/modules/launcher/Plugins/Wox.Plugin.Shell/Main.cs +++ b/src/modules/launcher/Plugins/Wox.Plugin.Shell/Main.cs @@ -173,8 +173,8 @@ namespace Wox.Plugin.Shell ProcessStartInfo info; if (_settings.Shell == Shell.Cmd) { - var arguments = _settings.LeaveShellOpen ? $"/k \"{command}\"" : $"/c \"{command}\" & pause"; - + var arguments = _settings.LeaveShellOpen ? $"/k \"{command}\"" : $"/c \"{command}\" & pause"; + info = ShellCommand.SetProcessStartInfo("cmd.exe", workingDirectory, arguments, runAsAdministratorArg); } else if (_settings.Shell == Shell.Powershell) @@ -193,24 +193,32 @@ namespace Wox.Plugin.Shell } else if (_settings.Shell == Shell.RunCommand) { - var parts = command.Split(new[] { ' ' }, 2); - if (parts.Length == 2) + //Open explorer if the path is a file or directory + if(Directory.Exists(command) || File.Exists(command)) + { + info = ShellCommand.SetProcessStartInfo("explorer.exe", arguments: command, verb: runAsAdministratorArg); + } + else { - var filename = parts[0]; - if (ExistInPath(filename)) + var parts = command.Split(new[] { ' ' }, 2); + if (parts.Length == 2) { - var arguments = parts[1]; - info = ShellCommand.SetProcessStartInfo(filename, workingDirectory, arguments, runAsAdministratorArg); + var filename = parts[0]; + if (ExistInPath(filename)) + { + var arguments = parts[1]; + info = ShellCommand.SetProcessStartInfo(filename, workingDirectory, arguments, runAsAdministratorArg); + } + else + { + info = ShellCommand.SetProcessStartInfo(command, verb: runAsAdministratorArg); + } } else { info = ShellCommand.SetProcessStartInfo(command, verb: runAsAdministratorArg); } } - else - { - info = ShellCommand.SetProcessStartInfo(command, verb: runAsAdministratorArg); - } } else {