【问题标题】:Windows cmd - Interact with user input prompt [npm] using onelinerWindows cmd - 使用 oneliner 与用户输入提示 [npm] 交互
【发布时间】:2018-03-01 20:00:12
【问题描述】:

我正在尝试将输入作为一行传递给用户输入提示,但我很难弄清楚如何正确执行。

具体来说,我正在尝试使用 npm adduser 登录 npm(npm login 是它的别名)

当它是一个奇异值时它可以工作,但这只能让我到目前为止:echo exampleuser| npm adduser Username: exampleuser Password: Password: npm ERR! cb() never called!

但不幸的是,当我尝试将多个命令添加在一起时,它会出错。例如:
echo 'exampleuser examplepassword ex@email.com'| npm adduser或
echo 'exampleuser\r\nexamplepassword\r\nex@email.com'| npm adduser或
echo 'exampleuser&& echo examplepassword&& echo ex@email.com'| npm adduser等...

按照以下方式返回错误 Username: 'exampleuser examplepassword' npm WARN Name must be lowercase Username: Username: npm ERR! cb() never called!

任何建议将不胜感激。

【问题讨论】:

  • npm 据我所知是批处理文件而不是控制台应用程序。因此,您不能通过将echo 的字符串输出重定向来处理可执行文件的 stdout 到 stdin 来运行它。您需要使用命令call 使用适当的参数调用 npm.bat。在命令提示符窗口call /? 中运行以获取有关此命令的帮助。并阅读npm 的文档,因为您显然没有这样做。建议在批处理文件中运行脚本和可执行文件,不仅使用文件名,而且使用文件名 + 文件扩展名(如果可能还使用路径)。那么你就会看到你的错误。
  • @Mofi 冷静的冠军。我已经广泛阅读了npm 文档,但一定错过了将npm 称为批处理文件的部分——请指点我吗?
  • 我很冷静。我从来没有安装过npm 包。我只知道npm 是 Windows 上的一个批处理文件(很可能是 Linux 上的一个 shell 脚本),因为在使用带有Windows npm batch file 的 www 搜索引擎找到的批处理文件中阅读了许多关于 Windows 上npm 使用问题的页面作为搜索字符串。我过去写过一次this answer。看起来npm 批处理脚本包目前写得不好。我想npm shell 脚本包要好得多。
  • 如果npm Documentation确实没有明确包含npm是一个带有文件扩展名的批处理文件的信息??? (bat 或 cmd)在 Windows 和 ??? (sh/bash/ksh/...) 脚本,使用npm 的人应该真正告知本网站的作者,对于任何操作系统上的脚本编写者来说,这个非常重要的事实也应该在文档中提及,例如在@ 987654323@
  • echo 'text' 按字面意思返回文本 'text',包括撇号;因此你应该使用echo text,并确保没有尾随空格,这也会被返回;所以对于管道,它必须是:echo text| npm(虽然我不知道npm是否从控制台输入读取数据)...

标签: windows cmd npm echo


【解决方案1】:

要传递多个值,您必须传递几行。 echo 无法回显换行符,所以你必须使用多个 echo 的

(
echo exampleUser
echo hisPassword
echo ex@email.com
)|npm adduser

单行:

(echo exampleUser&echo hisPassword&echo ex@email.com)|npm adduser

(注意:&! 之前没有空格)

(注意:这是传递几个参数的方法;无法测试,npm 是否真的会接受它们)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-02-18
    • 1970-01-01
    • 2015-04-03
    • 2021-03-25
    • 2021-06-22
    • 1970-01-01
    • 1970-01-01
    • 2017-03-01
    相关资源
    最近更新 更多