【问题标题】:How to make an input from command line in JScript?如何在 JAVAScript 中从命令行进行输入?
【发布时间】:2011-11-18 11:13:56
【问题描述】:

如何在 JScript 中从命令行读取输入,类似于 Pascal 的 readln

【问题讨论】:

  • JavaScript 没有任何内置函数来执行任何类型的 I/O,它们来自宿主环境。如果您指定了您在哪个环境中运行(例如 Windows 脚本主机),将会有所帮助。
  • 这个问题在这里得到解答:stackoverflow.com/questions/21015121/…

标签: wsh jscript


【解决方案1】:

听起来您是在询问有关 Windows 脚本主机的问题。如果你使用 cscript.exe 来运行你的脚本,你可以使用WScript.StdIn:

WScript.Echo("Enter something");
WScript.Echo("You entered " +WScript.StdIn.ReadLine());

http://msdn.microsoft.com/en-us/library/skwz6sz4(v=VS.85).aspx

【讨论】:

  • 我不是想在这里搞笑,但它只是听起来像 WSH,因为你为它添加了标签......有点把话放在提问者的嘴里?
  • 在此之前听起来像 WSH(因为它提到了“命令行”和“JScript”而不是“JavaScript”)。
  • @MattFellows:在 OP 未提供详细信息的情况下,我做出了与 Alex 相同的假设。不过,我认为这是一个安全的假设,原因有两个。 OP 明确提到了 JScript。通常,在谈论浏览器时,会使用 “JavaScript” 一词——即使在包含 JScript 引擎的旧版 IE 中也是如此。其次,还明确提到了命令行。在 Windows 中从命令行运行 JScript 的默认方式是通过 cscript.exewscript.exe,它们是 Windows Script Host。因此,添加标签是有意义的(在我已经回答之后)。
  • 虽然它被标记为 javascript,而不是 JScript,并且基于 OP 的原始语言,它对于“命令行”的实际含义是模棱两可的。用 WSH 重新标记它充其量是微不足道的,尤其是即使您认为他的意思是命令行,也有其他命令行 javascript 工具。我只是说我会谨慎地做出这种假设。最终,我们需要来自 OP 的更多信息来完全回答这个问题......
  • @MattFellows:这是将jscript 作为javascript 的同义词的一个不幸的副作用。 OP 可能指定了前者,并自动更改为后者。事实上,我只是考虑在 meta 上提出这个问题。
【解决方案2】:

假设cscript the.js a1 a2 ...你可以;

var args = WScript.Arguments;
for (var i= 0; i < args.length; i++) {
    WScript.Echo(args(i))
} 

【讨论】:

  • 这也是我的第一个想法,但这不像 Pascal 的 readln,这是他在问题中提出的。
  • 巧合的是,这正是我想要的,所以这是一个有用的意外副作用 ;-)。
【解决方案3】:

我一直在研究 Pascal,所以我不太确定 ReadLn() 究竟做了什么。如果您只想在命令行中从用户那里获取一行,您可以使用WScript.StdIn.ReadLine() 方法,如here 所述。

但是如果你想从文件中读取,那么你可以尝试:

var myFileSysObj = new ActiveXObject("Scripting.FileSystemObject");
var myInputTextStream = myFileSysObj.OpenTextFile("c:\\temp\\test.txt", 1, true);
var myString = myInputTextStream.ReadLine();
myInputTextStream.Close();

来自here

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-04
    • 1970-01-01
    • 2012-12-28
    • 1970-01-01
    • 2017-09-22
    • 2018-07-15
    相关资源
    最近更新 更多