मेरे पास PS संस्करण 5 में मेरे $profile में यह कोड है:

function af_ {
   Get-ChildItem function: | findstr.exe $args 
   if (! $args) {
     return "nothing"
   }
}

कॉलिंग उदा.

af_ tgit

वापसी:

Function        tgit                                               0.7.3      posh-git

कॉलिंग

af_

आउटपुट:

FINDSTR: Syntaxfehler
nothing

दो सवाल:

  1. मैं कैसे जांच सकता हूं कि "सिंटैक्सफेलर" के बिना $ args खाली नहीं है (यह जर्मन है ..)?

  2. क्या मैं कस्टम फ़ंक्शन की परिभाषा प्राप्त करने के लिए अपने विचार में सुधार कर सकता हूं, जैसा कि होगा

    declare -f $function

बैश में। यह उस परिभाषा को दिखाता है जो PS में संभव नहीं लगती। मुझे फ़ंक्शन को संसाधित करना है: डिवाइस और फिर "परिभाषा" आउटपुट देखें।

0
Timo 24 अक्टूबर 2020, 11:36

1 उत्तर

सबसे बढ़िया उत्तर

आपको सिंटैक्स त्रुटि मिलती है क्योंकि आप findstr.exe को खाली तर्क के साथ इससे पहले जांचते हैं। आदेश को उलटना यह करना चाहिए:

function af_ {
   if (! $args) {
     return "nothing"
   }
   Get-ChildItem function: | findstr.exe $args 
}

अपने दूसरे प्रश्न के लिए आप कमांड और इसकी परिभाषा प्राप्त करने के लिए Get-Command का उपयोग कर सकते हैं:

(Get-Command af_).Definition
1
driis 24 अक्टूबर 2020, 11:46