2013-06-12 6 views
0

я бегу CMD (командная строка) и работает мой пакетный файл из Java так:Java: Запуск CMD команды (несколько команд с несколькими аргументами сразу)

final String cmd = "cmd /c C: && dir && cd C:\MyApp\Maxi && dir && C:\MayApp\Maxi\deploy.bat"; 

try { 


      Process process = Runtime.getRuntime().exec(cmd); 

      final InputStream in = process.getInputStream(); 

      int ch; 

      while((ch = in.read()) != -1) { 
       System.out.print((char)ch); 
      } 
     } catch (IOException e) { 
      System.out.println("IOException on CMD executing statement"); 
      e.printStackTrace(); 
     } 

Он успешно работает, но я модифицировал пакетный файл и добавил некоторые аргументы, так что я должен передать имя пакетного файла, так что я попытался это: (я посылаю «NAME1» в качестве аргумента)

final String cmd = "cmd /c C: && dir && cd C:\MyApp\Maxi && dir && C:\MayApp\Maxi\deploy.bat Name1"; 

try { 


      Process process = Runtime.getRuntime().exec(cmd); 

      final InputStream in = process.getInputStream(); 

      int ch; 

      while((ch = in.read()) != -1) { 
       System.out.print((char)ch); 
      } 
     } catch (IOException e) { 
      System.out.println("IOException on CMD executing statement"); 
      e.printStackTrace(); 
     } 

но не работает сейчас, и команда не казнены. Я получаю только команду «dir».

Может ли кто-нибудь помочь?

Примечание: Команды успешно выполняются на CMD, но не работают с java.

ответ

0

Почему вы хотите выполнять несколько задач в одной команде? например Изменить на C: \, dir и затем выполнить?

Вы можете легко объединить все эти задачи в один пакетный файл.

Это поможет вам «не» скомпилировать код снова в случае изменения структуры каталогов.

+0

потому что имя каталога параметризуется переменной в моем коде, и мне нужно переместить курсор в конкретный каталог, прежде чем вызывать мой пакетный файл. Считаете ли вы, что это будет работать так? –

+0

Во-первых, вам определенно не нужен DIR. Во-вторых, дайте двойные кавычки команде. например && "C: \\ MayApp \\ Maxi \\ deploy.bat" "Name1" –

+0

Я использую только "DIR", чтобы проверить, перемещается ли курсор и есть ли выход. И спасибо, что вы сейчас работаете :) –

Смежные вопросы