我有一个独特的问题,我需要使用Node迭代几个Unix风格的命令,看看它们是否存在于
Windows安装的路径中.
例如,Windows本身不支持ls.但是,假设有人安装了git并检查了包含Unix命令,它会.
我需要知道ls和其他命令是否在系统路径中.
现在,我正在使用child_process来为每个命令运行帮助.然后我检查运行它的响应.这是混乱和危险的.我不想从Node运行30个任意命令:
var spawnSync = require('child_process').spawnSync; var out = spawnSync('ls',['/?'],{encoding: 'utf8'});
我怎样才能检查这些命令的存在?
解决方法
您可以在Linux中使用whereis,在Windows中使用whereis,以查看是否可以找到可执行文件
var isWin = require('os').platform().indexOf('win') > -1; var where = isWin ? 'where' : 'whereis'; var spawn = require('child_process').spawn; var out = spawn(where + ' ls',{encoding: 'utf8'}); out.on('close',function (code) { console.log('exit code : ' + code); });