2016-07-26 24 views
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)。解決

+0

可能な複製を(のhttp://のstackoverflow。 com/questions/34835327/select-after-select-object-after-select-after-object) – PetSerAl

+0

['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

+0

これまでの返答をありがとう...しかし、このスクリプトがPowershellの以前のバージョンではうまくいきました。以前に行ったように出力する正しい出力方法は何ですか? – bdcoder

答えて

関連する問題