2016-07-26 2 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 

У меня есть следующий 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 является встречающийся ПОСЛЕ Последующий 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

Возможный дубликат [Невозможно приостановить или сна после Select-Object] (HTTP: // StackOverflow. com/questions/34835327/disabled-to-pause-or-sleep-after-select-object) – PetSerAl

+0

Поскольку ['write-host' и' write-output' отличаются] (http://stackoverflow.com/questions/ 8755497/which-should-i-use-write-host-write-output-or-consolewriteline), а вызовы 'write-output' [неявные] (http://stackoverflow.com/a/19754384/478656). Вы отправляете два разных типа вывода через два совершенно разных маршрута (которые, возможно, никогда вообще не заканчиваются на экране вместе), а затем спрашивают, почему это занимает разные промежутки времени. – TessellatingHeckler

+0

Спасибо за ответы до сих пор ... Но с учетом этого сценария WAS работает отлично в предыдущих версиях powershell - каков правильный метод вывода, чтобы все выводилось так, как это было ранее? – bdcoder

ответ

Смежные вопросы