मुझे लूआ में io.popen
का उपयोग निष्पादन योग्य चलाने के लिए करना है जो कमांड लाइन तर्क लेता है। लुआ में खत्म होने की प्रक्रिया के लिए कैसे प्रतीक्षा करें ताकि अपेक्षित आउटपुट कैप्चर किया जा सके?io.popen - लुआ में प्रक्रिया समाप्त होने के लिए कैसे प्रतीक्षा करें?
local command = "C:\Program Files\XYZ.exe /all"
hOutput = io.popen(command)
print(string.format(""%s", hOutput))
मान लीजिए निष्पादन XYZ.exe जो कमांड लाइन तर्क /all
साथ कॉल किया जाना चाहिए है।
एक बार io.popen(command)
निष्पादित हो जाता है, प्रक्रिया कुछ स्ट्रिंग लौटाएगी जिन्हें मुद्रित करने की आवश्यकता है।
मेरे कोड का टुकड़ा:
function capture(cmd, raw)
local f = assert(io.popen(cmd, 'r'))
-- wait(10000);
local s = assert(f:read('*a'))
Print(string.format("String: %s",s))
f:close()
if raw then return s end
s = string.gsub(s, '^%s+', '')
s = string.gsub(s, '%s+$', '')
s = string.gsub(s, '[\n\r]+', ' ')
return s
end
local command = capture("C:\Tester.exe /all")
आपका मदद की सराहना की जाएगी।
मैं एक (io.popen (cmd, 'आर')) कोड किसी भी तरह यह काम नहीं कर रहा है ठीक से – Chet
समारोह पर कब्जा (cmd, कच्चे) स्थानीय च = ज़ोर चल रहा है - इंतजार (10000); स्थानीय एस = जोर (च: पढ़ें ('* एक')) प्रिंट (String.Format ("स्ट्रिंग:% s", रों)) च: करीब() अगर कच्चे तो लौट रों अंत एस = स्ट्रिंग .gsub (एस, '^% s +', '') एस = string.gsub (एस, '% s + $', '') एस = string.gsub (एस, '[\ n \ r] +' , '') रिटर्न एस अंत स्थानीय कमांड = कैप्चर ("सी: \ Tester.exe/all") – Chet