如何在Windows命令提示符中增加命令行参数大小或限制

时间:2013-11-27 10:23:55

标签: java command-line-arguments phantomjs casperjs

您好我已经创建了一个JAVA程序,它使用ProcessBuilder启动命令提示符,java传递带有一些参数的命令到控制台然后命令提示符负责处理命令,一切正常,直到命令行参数太长。实际上我使用phantomjs作为命令并将多个url作为参数传递给命令提示符。 例如:Java生成的字符串 -

phantomjs download.js --url=http://google.com, http://yahoo.com, http://website.com..................http://demo.com

当我传递100个网址然后它工作正常但是当增加到1000的网址然后它不起作用。我知道,这是因为参数缓冲区大小。当我试图传递1000的网址时,它超过了Windows命令行的最大字节数限制。所以有任何其他方法可以将此值传递给文件,或者我们可以增加命令行参数的限制。

请给我一些解决方案。

1 个答案:

答案 0 :(得分:1)

为什么不将文件名作为参数传递? 目标文件包含URL列表(JSON.stringify或每行一个)

例如

var system = require('system');
var fs = require('fs');
var args = system.args;

if (args.length === 1) {
  console.log('download.js <filename>');
  phantom.exit(1);
} else {
    var filename = args[1];
    var stream = fs.open(filename, 'r') 

    var line;
    while(line=stream.readLine()) {
        //do want you want here
        console.log(line);
    }

    phantom.exit(0);
}

使用

运行
>phantomjs download.js mytestfile.txt