在Windows命令行上伪装标准输入(Faking standard input on the Wi

2019-08-22 21:04发布

我想使用的Evernote的ENScript.exe创造新的记录,输入文字和标题作为参数。 问题是,ENSCRIPT只允许通过文件或通过标准输入要输入的文字。

对于我目前的解决方法我用一个.bat文件写入参数文件中,然后调用ENSCRIPT与/s参数指向文件中读取它,但强制默认标题临时文件的文件名(行为我不要)。

所以我的问题是:有没有一种方法来“假冒”的Windows命令行,这样我可以用一个参数(从另一个程序通过)来生成注释文本上的标准输入? 脚本的开始会是这样的

ENScript.exe createNote /i %1

与标准输入以下。

Answer 1:

您正在寻找捕捉一个命令的输出并且将其作为输入到下一个管作业。 这是大多数操作系统中的标准功能。

对于Windows CMD管道符号|

你的脚本可以是简单的:

@echo %~2|@ENScript.exe createNote /i %1

如果你的脚本被称为MakeNote.bat,你会这样称呼它

MakeNote "your title" "This is the text of your note"


Answer 2:

一个可以“假”的标准输入使用重定向:

command args... < filename args...

其中<意味着输入重定向(“从文件名后的读标准输入<不是终端的”)。

(请注意,旧的Windows或DOS程序可以从终端直读,使得输入重定向没用;这希望不会因为最近申请的东西作为Evernote的。)

为了您的例子:

ENScript.exe < "%1"

随意之前或重定向后添加更多的参数。 例如,如果你的脚本将被称为script filename title ,你会想调用ENScript /i "%2" < "%1"



文章来源: Faking standard input on the Windows command line