From 2efc3c17fadfeee18a40967b269665037b6aea56 Mon Sep 17 00:00:00 2001 From: Reinhard Pointner Date: Sun, 5 Feb 2017 16:12:31 +0800 Subject: [PATCH] Run powershell -Command instead of cmd /c --- source/net/filebot/cli/ScriptShellBaseClass.java | 16 +++++----------- 1 file changed, 5 insertions(+), 11 deletions(-) diff --git a/source/net/filebot/cli/ScriptShellBaseClass.java b/source/net/filebot/cli/ScriptShellBaseClass.java index eb15d195..03c764e5 100644 --- a/source/net/filebot/cli/ScriptShellBaseClass.java +++ b/source/net/filebot/cli/ScriptShellBaseClass.java @@ -289,23 +289,17 @@ public abstract class ScriptShellBaseClass extends Script { } public int execute(Object... args) throws Exception { - List cmd = new ArrayList(); + Stream cmd = stream(args).map(Objects::toString); if (Platform.isWindows()) { // normalize file separator for windows and run with powershell so any executable in PATH will just work - cmd.add("powershell"); - cmd.add("-Command"); + cmd = Stream.concat(Stream.of("powershell", "-Command"), cmd); } else if (args.length == 1) { - // make unix shell parse arguments - cmd.add("sh"); - cmd.add("-c"); + // make Unix shell parse arguments + cmd = Stream.concat(Stream.of("sh", "-c"), cmd); } - for (Object it : args) { - cmd.add(it.toString()); - } - - ProcessBuilder process = new ProcessBuilder(cmd).inheritIO(); + ProcessBuilder process = new ProcessBuilder(cmd.toArray(String[]::new)).inheritIO(); return process.start().waitFor(); }