如何在.bat上拖放多个文件?

时间:2017-06-18 20:52:47

标签: java windows batch-file cmd

基本上我是批处理的小伙子,现在我遇到了一个问题,即使在阅读了关于这个主题的所有其他相关帖子之后我也无法解决:( 我试图用两个参数启动.jar文件(让我们称之为test.jar)。我的批处理文件位于同一目录中。 这是我没有得到的部分: 这两个参数应该是我之前在.bat文件中拖放的文件的文件名。 它应该像这样工作: 我将第一个文件拖放到.bat文件中。然后我将第二个文件放到.bat文件中。现在.jar启动并显示两个文件名。 (最好是如果dos-Window不会被这个看到的话。) (直到现在我只用一个文件得到它但是当我将另一个文件放到.bat上时它只是启动另一个.bat-Window。) 这是我的.jar文件的主要方法:

public static void main(String[] args) {
    JFrame frame = new JFrame();  //build JFrame
    frame.setSize(400,400);

    JTextField t = new JTextField(); //build TextField to display the args
    t.setBounds(10, 10, 300, 100);

    if(args.length>=1){                 //if there is at least one argument, then print out the name of the file
        t.setText("First File: "+args[0]);          
        if(args.length>=2)              //if there is more then one argument, then print out the name of the files
            t.setText(t.getText()+" Second File: "+args[1]);    
        else                            //if there are not more then one argument
            t.setText(t.getText()+" 2nd Not found");        
    }else{                              //if there ist no argument
        t.setText("1st not found");
    }

    frame.add(t);       //add TextField
    frame.setVisible(true);     //set Visible
}

1 个答案:

答案 0 :(得分:1)

这是一个快速而干净的解决方案,尝试一下,如果我理解正确,这就是你需要的:

@echo off
set file1=
set file2=


echo Drag and drop file one + Enter:
set /p file1=
echo.

echo Drag and drop file two + Enter:
set /p file2=
echo.

echo.&echo.
echo %file1% 
echo %file2%
echo.

java -jar FILE.jar %file1% %file2%    

pause

代码说明:

- 确保在开始之前清空两个变量file1和file2。

- 提示拖放文件,然后按Enter键将拖动文件的路径存储到%file1%

- 提示拖放文件,然后按Enter键将拖动文件的路径存储到%file2%

-ECHO两个变量%file1%和%file2%以确保它们被正确保存(可选,当你知道它有效时你可以删除那个部分)

-Run .JAR文件,其中包含先前保存的两个参数(路径)