9

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

对于我当前的解决方法,我使用 .bat 文件将参数写入文件,然后使用/s指向文件的参数调用 ENScript 以将其读入,但这会强制将默认标题设为临时文件的文件名(我不这样做的行为想)。

所以我的问题是:有没有办法在 Windows 命令行上“伪造”标准输入,以便我可以使用参数(从另一个程序传递)来生成注释文本?脚本的开头类似于

ENScript.exe createNote /i %1

标准输入如下。

4

3 回答 3

12

您正在寻找一种管道操作,它捕获一个命令的输出并将其作为输入发送到下一个命令。这是大多数操作系统中的标准功能。

Windows CMD 的管道符号是|

您的脚本可能很简单:

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

如果您的脚本名为 MakeNote.bat,您可以这样称呼它

MakeNote "your title" "This is the text of your note"
于 2013-04-14T12:02:37.990 回答
1

可以使用重定向“伪造”标准输入:

command args... < filename args...

其中<表示输入重定向(“从文件名读取标准输入<而不是终端”)。

(请注意,旧的 Windows 或 DOS 程序可能会直接从终端读取,从而使输入重定向无用;希望这不适用于最近的 Evernote 程序。)

对于您的示例:

ENScript.exe < "%1"

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

于 2013-04-14T01:45:11.713 回答
0
echo Note text>Title&ENScript.exe createNote /s Title
于 2020-04-16T15:56:22.433 回答