Nasıl boru hattı girişi kabul eden bir Powershell komut dosyası yazmak için? | Netgez.com
SORU
19 Mayıs 2009, Salı


Nasıl boru hattı girişi kabul eden bir Powershell komut dosyası yazmak için?

Boru hattının giriş alabilirsiniz Powershell komut dosyası yazmak çalışıyorum (ve bunu yapmak için bekleniyor), ama bir şey gibi çalışıyor

ForEach-Object {
   # do something
}

aşağıdaki gibi komut satırında komut kullanırken aslında çalışmıyor

1..20 | .\test.ps1

Bir yolu var mı?

Not: fonksiyonları ve filtreler hakkında bilgim var. İşte bu aradığım şey değil.

CEVAP
20 Mayıs 2009, ÇARŞAMBA


V2 de boru hattı girişi (propertyName veya byValue tarafından) kabul, parametre adları vb ekleyebilirsiniz:

function Get-File{
    param(  
    [Parameter(
        Position=0, 
        Mandatory=$true, 
        ValueFromPipeline=$true,
        ValueFromPipelineByPropertyName=$true)
    ]
    [Alias('FullName')]
    [String[]]$FilePath
    ) 

    process {
       foreach($path in $FilePath)
       {
           Write-Host "file path is: $path"
       }
    }
}


# test ValueFromPipelineByPropertyName 
dir | Get-File

# test ValueFromPipeline (byValue) 

"D:\scripts\s1.txt","D:\scripts\s2.txt" | Get-File

 - or -

dir *.txt | foreach {$_.fullname} | Get-File

Bunu PaylaÅŸ:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Electro Posé

    Electro PosÃ

    21 ÅžUBAT 2013
  • hidetake takayama

    hidetake tak

    3 Mart 2009
  • SoundHound

    SoundHound

    8 Mart 2006