से पावरशेल को कॉल करना मैं विंडोज़ पर नोड.जेएस में फ़ाइल के मालिक को प्राप्त करने का प्रयास कर रहा हूं। एक win32api के अभाव में, मैंने सोचा कि मैं एक 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);
});
पावरशेल प्रक्रिया बस शुरू होती है और कभी समाप्त नहीं होती है।
किसी को भी है:
- क्यों आदेश Node.js में वापस नहीं होगा, या अधिमानतः
- एक समझदार तरीका मुझे विंडोज पर Node.js के साथ एक फ़ाइल मालिक पाने के लिए पर एक विचार ?
मैंने 'child = exec (...) का उपयोग किया; child.stdin.end(); 'और यह पूरी तरह से काम करता है। धन्यवाद। – tjdett
यह उत्तर मेरे लिए भी काम किया। धन्यवाद। इसका अनुभव करने वाले लोगों के संदर्भ में या इसके बारे में सोचने के संदर्भ में एक नोट। यह केवल powershell 2 और पहले (विंडोज 7 के साथ 2 जहाजों) stdin.end() कॉल के बिना होता है। पावरहेल 3 और बाद में (विंडोज 8 और 5 के साथ 3 जहाजों के लिए), यह जरूरी नहीं है और उम्मीद के अनुसार काम करता है। –