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
,那么它会再次起作用。
是什么导致了这种情况?
睡了一觉后,我意识到我没有记录代码和标准错误。这有助于我调试:
if (code !== 0) {
console.log(new TextDecoder().decode(stderr))
}