2012-06-26 9 views
5

php का उपयोग करके कमांड लाइन में आदेशों को सही तरीके से निष्पादित कैसे करें? उदाहरण के लिए मैं आदेश नीचे का उपयोग कर रहा कमांड लाइन में एक PDF फ़ाइल में एक docx फ़ाइल को रूपांतरित करने:cmd कमांड निष्पादित करने के लिए PHP का उपयोग

pdfcreator.exe /PF"D:\Documents\sample.docx 

अब PHP कोड का उपयोग कर मैं एक ही आदेश पर अमल करने में सक्षम होना चाहते हैं, लेकिन कुछ भी नहीं लगता है हो रहा हो करने के लिए :

<?php 
shell_exec('pdfcreator.exe /PF"D:\Documents\sample.docx"'); 
?> 

क्या यह PHP में संभव है? यदि हां, तो मैं इसे कैसे कर सकता हूं?

+0

### अद्यतन क्या आपको अपने लॉग में कोई त्रुटि मिलती है? यदि आप 'var_export' में 'shell_exec' कॉल को लपेटते हैं तो क्या होता है? ### क्या आपने इसके बजाय 'system() 'कोशिश की है? यहां प्रलेखन है: http://www.php.net/manual/en/function.system.php। –

+0

मैंने सिस्टम (exec, shell_exec, system, pcntl_exec, passthru) पर आदेशों को निष्पादित करने के लिए सिस्टम और अन्य सभी फ़ंक्शंस का प्रयास किया है –

+0

मैं डाउनवॉट नहीं हूं, आपका उत्तर बहुत सराहना करता है। –

उत्तर

8
system("c:\\path\\to\\pdfcreator.exe /PF\"D:\\Documents\\sample.docx""); 

इसे आजमाएं।

+0

क्या मुझे अभी भी निष्पादन योग्य फ़ाइल के पथ को शामिल करने की आवश्यकता है यदि मैंने इसे पहले से ही पर्यावरण चर में शामिल किया है? –

+0

मैं निश्चित रूप से नहीं हूं, लेकिन सुरक्षा सभी मार्गों को पारित कर रही है। –

+0

मुझे एक वाक्यविन्यास त्रुटि मिलती है, इसलिए मैंने इसे आपके द्वारा प्रदान किए गए कोड के आधार पर कुछ इस तरह बदल दिया: सिस्टम ('सी: \\ प्रोग्राम फ़ाइलें \\ पीडीएफ क्रिएटर \\ pdfcreator.exe/PF \ "डी: \\ दस्तावेज़ \\ sample.docx " '); लेकिन अभी भी कोई भाग्य नहीं है। –

4

escapeshellcmd() के साथ अपने आदेश से बचने के लिए मत भूलना। यह आपको बदसूरत बैकस्लाश का उपयोग करने और पात्रों से बचने से रोक देगा।

`command` // back ticks drop you out of PHP mode into shell 
exec('command', $output); // exec will allow you to capture the return of a command as reference 
shell_exec('command'); // will return the output to a variable 
system(); //as seen above. 

इसके अलावा, सुनिश्चित करें कि आपके .exe अपने $ पथ चर में शामिल है बनाने:

भी अन्य विकल्प जो काम कर सकते हैं कर रहे हैं। यदि नहीं, तो आदेश के लिए पूरा पथ शामिल करें।

+0

नीचे दिए गए कोड को आपके उत्तर के आधार पर आजमाएं, लेकिन अभी भी काम नहीं करता है। क्या मैंने कुछ गड़बड़ कर दी:

+0

जब आप सीएलआई से स्क्रिप्ट चलाते हैं तो क्या यह कुछ भी आउटपुट करता है? कुछ ऐसा करने का प्रयास करें: '$ command = escapeshellcmd ('pdfcreator.exe /PF"D:\Documents\sample.docx"> सी: \ outfile'); '। सी को कुछ भी लिखा जाता है: \ outfile? –

संबंधित मुद्दे