首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在jrunscript或jjs中访问标准输入(在win7上)

如何在jrunscript或jjs中访问标准输入(在win7上)
EN

Stack Overflow用户
提问于 2016-01-14 00:39:31
回答 3查看 224关注 0票数 1

我在谷歌上搜索了很多,但没有找到任何东西告诉我在使用jrunscript执行JS时如何访问stdin。

这似乎是不可能的。

用例:我想写一个小的JS脚本,用来在cmd上使用regex-replace,我想通过管道传递文本数据,例如

代码语言:javascript
复制
>cat file | jrunsscript -f apply-regex.js

..。然后输出结果(我可以通过管道将结果保存到一个文件中,等等)。

因此,我需要访问stdin,以便读取通过管道传输到jrunsscript的内容。

附注:为此,我通常使用sed,但在某些情况下,当正则表达式本身包含引号时会出现问题。

EN

回答 3

Stack Overflow用户

发布于 2016-01-14 04:47:11

不确定这是否在主题上:http://docs.oracle.com/javase/7/docs/technotes/tools/share/jsdocs/GLOBALS.html

打印提示后,

read(prompt, multiline)从标准输入中读取一行或多行

根据您的评论,我认为您需要使用如下所示的参数:https://docs.oracle.com/javase/8/docs/technotes/tools/unix/jrunscript.html

用法:

jrunscript -f test.js "Hello World"

获取参数:

document.write(arguments[0]);

经过更多的研究,您也许能够通过交互模式阅读:

jrunscript -f -

交互模式,从标准输入中读取脚本。如果使用此选项,则这应该是最后一个-f选项

但是仍然不清楚这是否是你想要的。

票数 0
EN

Stack Overflow用户

发布于 2016-01-26 23:21:48

到目前为止,解决方法是

  1. 将输入通过管道传输到文件中,并根据需要将临时文件作为arg传递到jsrunscript
  2. use JS
票数 0
EN

Stack Overflow用户

发布于 2020-01-24 07:17:29

去爪哇玩玩吧。

在文件JJS_SAYS_HI.js

代码语言:javascript
复制
//Java-y bit
var br = new java.io.BufferedReader(
    new java.io.InputStreamReader(
            java.lang.System.in,
            java.nio.charset.StandardCharsets.UTF_8)
    );
//JavaScript-y bit
var line = "";
while(br.ready()) {
    line = br.readLine();
    print("JJS says: ${line}");
};

使用如下命令测试整个混乱:echo Hi! | jjs -scripting JJS_SAYS_HI.js

输出为JJS says: Hi! (在Windows上)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34772180

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档