Dosyadan harici bir işlev almak istiyorum, onu bir modüle dönüştürmüyoruz (yüzlerce dosya başına işlevimiz var, bu nedenle bunların tümünü modüller olarak ele aldık) .Fonksiyondan dosyaya genel kapsamdan noktaya işlev fonksiyonları
İşte kod açıklaması. İçe Aktarma İşlevinde komut dosyası kök klasörü eklemek, dosya mevcudiyetini kontrol etmek ve özel bir hata atmak gibi bazı ek mantığa sahip olduğumu lütfen unutmayın.
C: \ Repository \ Foo.ps1:
Function Foo {
Write-Host 'Hello world!'
}
C: \ InvocationTest.ps1:
# Wrapper func
Function Import-Function ($Name) {
# Checks and exception throwing are omitted
. "C:\Repository\$name.ps1"
# Foo function can be invoked in this scope
}
# Wrapped import
Import-Function -Name 'Foo'
Foo # Exception: The term 'Foo' is not recognized
# Direct import
. "C:\Repository\Foo.ps1"
Foo # 'Hello world!'
küresel kapsama kaynağını nokta için herhangi bir hile var mı?
Çok teşekkürler, bu güzel hach çalışıyor. Eğer işe yaramazsa, çalışmasını sağlamak için birkaç küçük düzeltme ekledim. –
Hiç boşver. Tam bir bitmiş çözüm değil, sadece bir fikir iletmeye çalışıyordum. – mjolinor
@AntonPurin, cevabınızı 'küçük düzeltmeleri' içerecek şekilde güncelleyebilir misiniz? –