2012-12-04 11 views
6

Ben nokta kaynaklı varsa:PowerShell'de nokta kaynaklı komut dosyasını nasıl kaldırabilirim?

. "\foo-bar.ps1" 

nasıl tüm listesini elde etmek görebilirsiniz dot kaynaklı komut ve nasıl kaldırabilirim nokta kaynaklı betiklerinden "foo bar/PS1"?

+0

Çırpınan alkol gibi: sadece sonucu hafifletebilir, ancak tamamen bozulmaz. Birini içmemeli ya da PowerShell durumundayken, kaynak noktasını belirlediğiniz noktaya ilk sembol olarak '#' koymanız yeterlidir – maoizm

cevap

11

Bildiğim kadarıyla, bir nokta kaynaklı komut dosyasını kaldıramazsınız. PowerShell 2.0'da tanıtılan modüller bu yüzden. Bkz. About_Modules

"foo-bar.ps1" dosyanızı bir modüle dönüştürebilirsiniz. Bir modül içe aktarılabilir (Import-Module) ve çıkarılabilir (Modül Kaldır).

5

Ben genel bir nokta kaynaklı senaryoyu kaldıramazsınız ama kendi kodlama kurallarına bağlı olarak pratikte bu yapmak mümkün olabilir @JPBlanc katılıyorum. Eğer genel yılında bunu yapamaz neden hakkında

İlk birkaç gözlemler:

(1) PowerShell ayrı bir varlık olarak bir nokta kaynaklı script bağı yoktur. Bir noktaya kaynak koyduktan sonra, içeriğin mevcut içeriğinizin bir parçası olur, tıpkı istemde her satırı elle yazmış olsaydınız. Bu nedenle, gerçekten var olmadığından onu kaldıramazsınız :-)

(2) (1) ile aynı nedenden dolayı nokta kaynaklı komut dosyalarını listeleyemezsiniz.

Şimdi yine bunu nasıl:

içerikleri ve nokta kaynaklı script sözleşmeler bağlı olsa da, istediğini yapmak mümkün olabilir. Örneğin, komut dosyası sadece üç işlevi tanımlıyorsa - bunlar func-a, func-b ve func-c -O zaman sen can hem liste ve bu işlevleri kaldırmak diyoruz.

Liste asimile işlevler:

Get-ChildItem function:func-* 

Kaldır asimile işlevler:

Remove-Item function:func-* 
3

Eğer nokta kaynaklı dosyanın yolunu biliyorsanız fonksiyonları kaynaklı kaldırabilirsiniz:

Temel olarak,
Get-ChildItem function: | 
Where-Object {$_.ScriptBlock.File -eq $path} | 
Remove-Item 
+0

Farklı şeyler PS v5'ten nasıl emin olacağından emin değilim, fakat 'Kaldır-Öğe Fonksiyonunu kullanabilirim : "Get-WMIReboot", kaldırılacak olan işlevimin adıdır. Fonksiyonun 'dir işlevi: kullanılarak giderildiğini onaylayın. – user4317867

İlgili konular