给定以下脚本:
const yargs = require('yargs');
const argv =
yargs
.usage('Usage: $0 [--whatIf]')
.alias('d', 'directory')
.alias('wi', 'whatIf')
.nargs('d', 1)
.describe('d', 'alphabetize this directory')
.describe('whatIf', 'show what would happen if run')
.demandOption(['d'])
.argv;
console.log(argv.directory);
如果我像这样从 Windows PowerShell 调用脚本: 我会得到我期望node .\alphabetizer.js -d 'l:\my folder\Files - Some Files In Here\' --whatIf
的输出。它适用于不需要转义的文件夹名称,但它似乎对转义感到困惑。l:\my folder\Files - Some Files In Here\" --whatIf
l:\my folder\Files - Some Files In Here\
如果我检查process.argv
,我可以看到相同的转义问题。
我注意到,如果我删除尾部斜杠,它将起作用。但是,这仍然表明节点脚本没有正确处理输入,因为单引号引起的字符串不应该这样做。
有没有办法使这项工作?