2012-04-24 12 views
7

का उपयोग कर निष्पादन योग्य को खाली तर्क पास करना PowerSll कमांड को पारित होने पर खाली स्ट्रिंग तर्क छोड़ना प्रतीत होता है। मेरे पास यह कोडशक्तियों

PS D:\> $b.name = "foo bar" 
PS D:\> ./echoargs $b.name 
Arg 0 is D:\echoargs.exe 
Arg 1 is foo bar 
PS D:\> $b.name = "" 
PS D:\> ./echoargs $b.name 
Arg 0 is D:\echoargs.exe 

आप मान सकते हैं कि $ बी का नाम 'नाम' सदस्य है। जब मैं मान खाली स्ट्रिंग होता हूं तब भी मैं इसे exe के लिए तर्क के रूप में कैसे पास कर सकता हूं। मैंने बिना किसी सफलता के कॉल ऑपरेटर का उपयोग करने का प्रयास किया है।

उत्तर

7

आप एक खाली स्ट्रिंग दिखाना चाहते हैं तो कोशिश तो की तरह तर्क के आसपास उद्धरण भाग निकले सुनिश्चित नहीं है कि व्यवहार V2 पर बिल्कुल वही होगा।

5

डबल कोट्स में संलग्न एक खाली सिंगल कोट स्ट्रिंग को पास करने का प्रयास करें, या इसके विपरीत।

PS> $b = [psobject]@{name = ''} 
PS> echoargs `"$($b.Name)`" 
Arg 0 is <> 

Command line: 
"C:\Users\Keith\Pscx\Trunk\Src\Pscx\bin\Release\Apps\EchoArgs.exe" "" 

ध्यान दें कि मैं वी 3 पर तो मैं कर रहा हूँ इस परीक्षण किया:

./echoargs $b.name, "''" 

या

./echoargs $b.name, '""' 
+1

मैंने पीएस v5 में दोनों विधियों का परीक्षण किया और पहला काम नहीं किया, लेकिन दूसरे ने किया: './echoargs $ b.name, '" "''। मापदंडों के बीच अल्पविराम मेरे मामले में आवश्यक नहीं प्रतीत होता था। – hjoelr

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