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ş:
Nasıl bir PowerShell komut dosyası içi...
Nasıl ilk hatada PowerShell komut dosy...
Raylar 3.1 varlık boru hattı: nasıl de...
Nasıl bir toplu iş dosyası komut satır...
Nasıl (dişliler) varlık boru hattı ile...