1
PowerShellのバージョン情報:Powershell Get-ChildItemの出力が遅れていますか?以下
Name Value
---- -----
PSVersion 5.0.10586.494
PSCompatibleVersions {1.0, 2.0, 3.0, 4.0...}
BuildVersion 10.0.10586.494
CLRVersion 4.0.30319.42000
WSManStackVersion 3.0
PSRemotingProtocolVersion 2.3
SerializationVersion 1.1.0.1
I次のPowerShellのコードを持っている:
Write-Host "Step 1..."
$find = "string-to-find"
Get-ChildItem -Path D:\path\path\ -Include *.dat1, *.dat2, *.dat3, *.dat4, -Recurse `
| Select-String -SimpleMatch $find `
| Select-Object -Unique Path
Write-Host "Step 2 ..."
出力:
Step 1...
Step 2...
Path
----
D:\path\path\test.dat1
基本的には、Get-ChildItem
からの出力は以降のAFTER を発生していますWrite-Host
声明 - なぜ????
このコードは以前のバージョンでうまくいきました。出力が実行される順序で出力されるようにするには、正しい出力方法は何でしょうか?
ありがとうございます。
はまだ、これは、以下のものを使用して動作するように取得しようとしている:
Get-ChildItem -Path D:\path\path\ -Include *.dat1, *.dat2, *.dat3, *.dat4, -Recurse `
| Select-String -SimpleMatch $find `
| Select-Object -Unique Path `
| ForEach-Object { $_ } | Write-Host
しかし、出力は次のようになります。
@{Path=D:\path\path\something.dat1}
@{Path=D:\path\path\something.dat1}
それが前に働いていたように私が望むすべてが記載されているフルパス名(ありますv5)。解決
可能な複製を(のhttp://のstackoverflow。 com/questions/34835327/select-after-select-object-after-select-after-object) – PetSerAl
['write-host'と' write-output'は異なるためです。](http://stackoverflow.com/questions/ (write-output-calls-output-or-consolewriteline)、および 'write-output'呼び出しは暗黙的です(http://stackoverflow.com/a/19754384/478656)。あなたは2つの異なるタイプの出力を送信しています.2つの全く異なるルート(実際に決して一緒に画面に表示されることはありません)と、異なる時間がかかる理由を尋ねます。 – TessellatingHeckler
これまでの返答をありがとう...しかし、このスクリプトがPowershellの以前のバージョンではうまくいきました。以前に行ったように出力する正しい出力方法は何ですか? – bdcoder