2012-12-19 11 views
12

मैं अपने निष्पादन योग्य स्क्रिप्ट में सही ढंग से इस निष्पादन योग्य को कॉल नहीं कर सकता।मैं एक चर पथ के साथ निष्पादन योग्य में psake में exec कैसे कॉल करूं?

अगर मैं ऐसा करते हैं:

exec { "$ArchiverOutputDir\NServiceBus.Host.exe /install" } 

यह बस इस आउटपुट (और स्पष्ट रूप से बुला नहीं है निष्पादन - सिर्फ इतना है कि अभिव्यक्ति के मूल्य outputting):

c:\ReloDotNet2_ServiceEndpoints\Archiver\NServiceBus.Host.exe /install 

लेकिन अगर मैं ऐसा करने के :

exec { c:\ReloDotNet2_ServiceEndpoints\Archiver\NServiceBus.Host.exe /install } 

मुझे निष्पादन योग्य से अपेक्षित आउटपुट मिलता है।

मैं psake में निष्पादन योग्य के पथ में चर के साथ निष्पादन योग्य को सही तरीके से कैसे कॉल करूं? यदि यह वास्तव में एक पावरशेल मुद्दा है, तो कृपया उस अंतर्दृष्टि को दर्शाने के लिए प्रश्न को सही करने के लिए स्वतंत्र महसूस करें।

I

+0

टैग पर उस संपादन के लिए धन्यवाद - उन्हें पिछले प्रश्न से स्थानीय संग्रहण में सहेजा गया था जिसका मतलब है कि मैं निरस्त करना चाहता हूं। –

उत्तर

16

क्लासिक पावरशेल मुद्दा। ऐसा करें:

exec { & "$ArchiverOutputDir\NServiceBus.Host.exe" /install } 

PowerShell न केवल कार्यान्वित आदेशों, यह भी मूल्यांकन करता है भाव जैसे:

C:\PS> 2 + 2 
4 
C:\PS> "hello world" 
hello world 

क्या आप एक पाइप लाइन की शुरुआत में PowerShell को दे दिया है एक स्ट्रिंग अभिव्यक्ति है जो इसे ईमानदारी से मूल्यांकन करता है और कंसोल को प्रिंट करता है। कॉल ऑपरेटर & का उपयोग करके, आप PowerShell को बता रहे हैं कि निम्न बात या तो कमांड (स्ट्रिंग में) का नाम या निष्पादित करने के लिए स्क्रिप्टब्लॉक का नाम है। तकनीकी रूप से आप . "some-command-name-or-path" का भी उपयोग कर सकते हैं। केवल अंतर यह है कि PowerShell कमांड के लिए, & कमांड निष्पादित करने के लिए एक नया दायरा बनाता है और . नहीं करता है। बाहरी exes के लिए यह कोई फर्क नहीं पड़ता है, जहां तक ​​मैं बता सकता हूं कि आप किस का उपयोग करते हैं लेकिन & आमतौर पर उपयोग किया जाता है।

+0

धन्यवाद, आदमी! आप इसे किसी न किसी! क्या आप पावरहेल पर कुछ अच्छे दस्तावेज (पुस्तकें शामिल) को इंगित कर सकते हैं? मैं वाक्यविन्यास से बहुत उलझन में हूं और सामान का मूल्यांकन कैसे किया जाता है। –

+0

निश्चित रूप से। इस फ्रीबी को आजमाएं http://rkeithhill.wordpress.com/2009/03/08/effective-windows-powershell-the- free-ebook/ –

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