如何在 Visual Studio Code 任务中使用标准输入/标准输出重定向?
Posted
技术标签:
【中文标题】如何在 Visual Studio Code 任务中使用标准输入/标准输出重定向?【英文标题】:How to use stdin/stdout redirect in Visual Studio Code task? 【发布时间】:2017-10-29 20:22:28 【问题描述】:我想用 Visual Studio Code 任务编译我的 Stylus 文件,但该命令需要 stdin/stdout 重定向(使用 <
和 >
):
stylus --compress < main.styl > main.css
这不起作用,因为行为似乎与 shell 不同。
试试
"version": "0.1.0",
"tasks": [
"taskName": "styles",
"isBuildCommand": true,
"isShellCommand": true,
"echoCommand": true,
"command": "stylus",
"args": [
"--compress",
"<",
"main.styl",
">",
"main.css"
]
]
赶上
running command$ stylus --compress < main.styl > main.css
/usr/local/lib/node_modules/stylus/bin/stylus:641
if (err) throw err;
^
Error: ENOENT: no such file or directory, stat '<'
【问题讨论】:
【参考方案1】:据我所知,没有办法从here 描述的任务架构中重定向标准输入和标准输出。
要进行重定向,您需要编写一个小实用程序来接受可执行文件的名称、输入文件、输出文件和任何其他参数。然后,此实用程序 EXE 文件将执行您的“手写笔”,将其输入和输出重定向到实用程序可执行文件中指定的文件。如果您的实用程序 EXE 文件名为 redirect.exe
,您的命令行将是
redirect.exe stylus.exe main.styl main.css --compress
您的 tasks.json 将如下所示:
…
"command": "redirect.exe",
"args": [
"stylus.exe", "main.styl", "main.css", "--compress", "--etc"
]
【讨论】:
以上是关于如何在 Visual Studio Code 任务中使用标准输入/标准输出重定向?的主要内容,如果未能解决你的问题,请参考以下文章
Visual Studio Code 中的 TypeScript 运行构建任务失败
json Visual Studio Code Asciidoctor-PDF任务(带问题匹配器)