Передача переменной из Java в пакет

#java #batch-file #batch-rename

Вопрос:

Эта программа Java открывает пакетный файл и передает строку folderName

 public class FolderCreator {

    public static void main(String[] args) {
        try{    
            Process p = Runtime.getRuntime().exec("C:/Documents/NameFolder.bat folderName");
            p.waitFor();
        }catch(Exception e) {
            System.out.println(e);
        }   
    }
}
 

Это файл с именем.bat. Он должен создать папку с именем из переданной выше переменной Java.

 //What do I need to ad here?

if not exist "C:DesktopfolderName" mkdir C:DesktopfolderName
 

Что мне нужно добавить в пакетный файл?

Редактировать:

Это работает

 if not exist "C:Desktop%1" mkdir C:Desktop%1
 

Комментарии:

1. Вы просите о помощи с Java или пакетной обработкой?

2. Что мне нужно добавить в пакетный файл

3. %1 Работает ли это?

4. Вы получаете это folderName через args ? Почему вы хотите использовать язык сценариев через Java, когда он есть java.nio ? Вы можете просто создать Path файл, который указывает на рабочий стол, а затем resolve на имя папки…

Ответ №1:

Пакетный сценарий

Следующее создаст каталог только в том случае, если этот каталог не существует

 if not exist "C:Users%USERNAME%Desktop%1" (
  mkdir  "C:Users%USERNAME%Desktop%1"
)
 

Предполагая, что вы сохраните это в файл C:/Documents/NameFolder.bat вы просто выполняете его с тем же самым точным кодом Java

 Process p = Runtime.getRuntime().exec("C:/Documents/NameFolder.bat folderName");
 

Это приведет к созданию c:Users%USERNAME%DesktopfolderName каталога, только если этот каталог еще не существует.

Это не лучшая практика. Пожалуйста, ознакомьтесь с информацией о выполнении командных/пакетных сценариев с Java