diff --git a/src/Solver/ASolver.py b/src/Solver/ASolver.py
index ca6e6f4f97dced074b1f663541b205b4e82c35cd..d438af053a23591b35696e4d29f348a5a9f5c3c9 100644
--- a/src/Solver/ASolver.py
+++ b/src/Solver/ASolver.py
@@ -176,12 +176,15 @@ class AbstractSolver(object):
             )
         )
 
-    def run_input_data_fomater(self):
-        if self._cmd_input == "":
-            self._run_next()
-            return True
+    def _format_command(self, cmd):
+        """Format command line
 
-        cmd = self._cmd_input
+        Args:
+            cmd: The command line
+
+        Returns:
+            The executable and list of arguments
+        """
         cmd = cmd.replace("@install_dir", self._install_dir())
         cmd = cmd.replace("@path", self._path_input)
         cmd = cmd.replace("@input", self.input_param())
@@ -193,7 +196,7 @@ class AbstractSolver(object):
             # Command line executable path is between " char
             cmd = cmd.split("\"")
             exe = cmd[1]
-            args = "\"".join(cmd[3:]).split(" ")
+            args = "\"".join(cmd[2:]).split(" ")[1:]
         else:
             # We suppose the command line executable path as no space char
             cmd = cmd.replace("\ ", "&_&").split(" ")
@@ -201,6 +204,15 @@ class AbstractSolver(object):
             args = cmd[1:]
 
         logger.info(f"! {exe} {args}")
+        return exe, args
+
+    def run_input_data_fomater(self):
+        if self._cmd_input == "":
+            self._run_next()
+            return True
+
+        cmd = self._cmd_input
+        exe, args = self._format_command(cmd)
 
         if not os.path.exists(exe):
             error = f"[ERROR] Path {exe} do not exists"
@@ -219,25 +231,7 @@ class AbstractSolver(object):
             return True
 
         cmd = self._cmd_solver
-        cmd = cmd.replace("@install_dir", self._install_dir())
-        cmd = cmd.replace("@path", self._path_solver)
-        cmd = cmd.replace("@input", self.input_param())
-        cmd = cmd.replace("@dir", self._process.workingDirectory())
-
-        logger.info(f"! {cmd}")
-
-        if cmd[0] == "\"":
-            # Command line executable path is between " char
-            cmd = cmd.split("\"")
-            exe = cmd[1]
-            args = "\"".join(cmd[3:]).split(" ")
-        else:
-            # We suppose the command line executable path as no space char
-            cmd = cmd.replace("\ ", "&_&").split(" ")
-            exe = cmd[0].replace("&_&", "\ ")
-            args = cmd[1:]
-
-        logger.info(f"! {exe} {args}")
+        exe, args = self._format_command(cmd)
 
         if not os.path.exists(exe):
             error = f"[ERROR] Path {exe} do not exists"
@@ -257,23 +251,7 @@ class AbstractSolver(object):
             return True
 
         cmd = self._cmd_output
-        cmd = cmd.replace("@install_dir", self._install_dir())
-        cmd = cmd.replace("@path", self._path_output)
-        cmd = cmd.replace("@input", self.input_param())
-        cmd = cmd.replace("@dir", self._process.workingDirectory())
-
-        logger.debug(f"! {cmd}")
-
-        if cmd[0] == "\"":
-            # Command line executable path is between " char
-            cmd = cmd.split("\"")
-            exe = cmd[1]
-            args = "\"".join(cmd[3:]).split(" ")
-        else:
-            # We suppose the command line executable path as no space char
-            cmd = cmd.replace("\ ", "&_&").split(" ")
-            exe = cmd[0].replace("&_&", "\ ")
-            args = cmd[1:]
+        exe, args = self._format_command(cmd)
 
         if not os.path.exists(exe):
             error = f"[ERROR] Path {exe} do not exists"