如何在 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任务(带问题匹配器)

如何在Visual Studio Code 中运行 Python

如何评价Visual Studio Code

visual studio code如何运行c

Visual Studio Code卡顿的解决方案