Если я полностью рекурсивный поиск диска в PowerShell с помощью команды ls
и установите ErrorAction
в SilentlyContinue
это все еще бомбы, когда он попадает в папку не может получить доступ.Ls -recurse -ErrorAction SilentlyContinue не работает
Я могу обернуть звонок в try catch
, но это не помешает прекращению поиска, оно просто проглотит ошибку.
Пример:
ls -Include msdeploy.exe -Recurse -ErrorAction SilentlyContinue;
Результаты в:
PS C:\> ls msdeploy.exe -Recurse -ErrorAction SilentlyContinue
Directory: C:\Program Files\IIS\Microsoft Web Deploy V2
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a--- 4/1/2011 8:17 PM 165704 msdeploy.exe
Directory: C:\Program Files\IIS\Microsoft Web Deploy V3
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a--- 7/12/2012 9:13 AM 197504 msdeploy.exe
Directory: C:\Program Files (x86)\IIS\Microsoft Web Deploy V2
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a--- 4/1/2011 8:17 PM 169800 msdeploy.exe
Directory: C:\Program Files (x86)\IIS\Microsoft Web Deploy V3
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a--- 7/12/2012 9:13 AM 201600 msdeploy.exe
ls : Access is denied
At line:1 char:1
+ ls msdeploy.exe -Recurse -ErrorAction SilentlyContinue
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [Get-ChildItem], UnauthorizedAccessException
+ FullyQualifiedErrorId : System.UnauthorizedAccessException,Microsoft.PowerShell.Commands.GetChildItemCommand
Постараюсь глобальную переменную, я думал, что есть другой способ.
Код в письменном виде отлично подходит для меня ... он вообще не показывает результатов? – JNK
Невозможно воспроизвести его. Отправьте точное сообщение об ошибке. Выполняется ли команда по-разному, когда вы устанавливаете '$ ErrorActionPreference =" молча продолжить "? Также обратите внимание, что даже это не поймает всевозможные ошибки (см. [Здесь] (http://blogs.technet.com/b/heyscriptingguy/archive/2010/03/08/hey-scripting-guy-march- 8-2010.aspx)). –
@Kevin_ 'ls' является [псевдоним] (http://technet.microsoft.com/en-us/library/ee692685.aspx) для' Get-ChildItem'. В этом нет ничего хитрого. –