如何使脚本在不同位置获得不同的标准输出返回?

问题描述 投票:0回答:1
import * as path from "https://deno.land/[email protected]/path/mod.ts";
async function getStdout() {
    const dirname = path.dirname(path.fromFileUrl(import.meta.url))
    const cmd = new Deno.Command("pwsh", { args: ['-c', 'ls', dirname] });
    const { _code, stdout, _stderr } = await cmd.output();
    const decodedStdout = new TextDecoder().decode(stdout)
    console.log(decodedStdout)
}
await getStdout()

这个脚本只是获取它的路径,运行

pwsh -c ls $dirname
并打印结果。如果在文件夹 A 上运行它工作正常,但在文件夹 B 上它不会返回任何内容。 B上肯定有文件;在 B 上运行
ls
就可以了。

但是,如果我将命令从

ls
更改为
echo
,那么它会再次起作用。

是什么导致了这种情况?

terminal stdout deno get-childitem
1个回答
0
投票

睡了一觉后,我意识到我没有记录代码和标准错误。这有助于我调试:

if (code !== 0) {
    console.log(new TextDecoder().decode(stderr))
}
© www.soinside.com 2019 - 2024. All rights reserved.