8
我試圖在Windows上獲取Node.js中文件的所有者。在沒有WIN32API的,我想我會使用PowerShell命令:從NodeJS調用PowerShell
powershell -Command "(get-acl test.txt).owner"
這種由命令行和批處理文件作品完美,但只是Node.js的exec()
掛起:
var exec = require('child_process').exec;
exec('powershell -Command "(get-acl test.txt).owner"', function(err,sysout,syserr) {
console.dir(sysout);
});
PowerShell進程看起來開始並且從不終止。
有誰知道:
- 爲什麼該命令將不會在返回的Node.js,最好
- 一個健全的辦法,我在Windows上獲取文件所有者與Node.js的一個想法?
我用'child = exec(...); child.stdin.end();'它完美地工作。謝謝。 – tjdett 2012-02-06 08:19:35
這個答案也適用於我。謝謝。一個註釋可供其他人蔘考,或對此有所懷疑。這隻發生在沒有stdin.end()調用的Powershell 2和更早的版本(2個Windows 7附帶)上。對於Powershell 3和更高版本(3個Windows 8和5與10),這是沒有必要的,並按預期工作。 – 2016-01-01 21:54:52