如何在windows命令提示符下增加命令行参数的大小或限制



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

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

当我通过100个URL时,它运行良好,但当URL增加到1000个时,它就不起作用了。我知道,这是因为参数缓冲区的大小。当我试图传递1000的url时,它超过了windows命令行的最大字节限制。所以,还有其他方法可以将这个值传递到文件中,或者我们可以增加命令行参数的限制。

请给我一些解决方案。

为什么不直接传递一个文件名作为参数?目标文件包含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

最新更新