2011-10-14 11 views
6

Por ejemplo, considere la siguiente transcripción de la consola:¿Cómo hacer que powershell sea menos detallado en los errores?

PS C:\dev\windows> rmdir -Recurse .\bin 
Remove-Item : Cannot remove item C:\dev\windows\bin\DotNet\Debug\Implementation\Common.DTO.XML: Access to the path 'Common.DTO.XML' is denied. 
At line:1 char:6 
+ rmdir <<<< -Recurse .\bin 
    + CategoryInfo   : PermissionDenied: (Common.DTO.XML:FileInfo) [Remove-Item], UnauthorizedAccessException 
    + FullyQualifiedErrorId : RemoveFileSystemItemUnAuthorizedAccess,Microsoft.PowerShell.Commands.RemoveItemCommand 
Remove-Item : Directory C:\dev\windows\bin\DotNet\Debug\Implementation cannot be removed because it is not empty. 
At line:1 char:6 
+ rmdir <<<< -Recurse .\bin 
    + CategoryInfo   : WriteError: (Implementation:DirectoryInfo) [Remove-Item], IOException 
    + FullyQualifiedErrorId : DirectoryNotEmpty,Microsoft.PowerShell.Commands.RemoveItemCommand 

Remove-Item : Cannot remove item C:\dev\windows\bin\DotNet\Debug\Shunra.Common.Contract.XML: Access to the path 'Shunra.Common.Contract.XML' is denied. 
At line:1 char:6 
+ rmdir <<<< -Recurse .\bin 
    + CategoryInfo   : PermissionDenied: (Shunra.Common.Contract.XML:FileInfo) [Remove-Item], UnauthorizedAccessException 
    + FullyQualifiedErrorId : RemoveFileSystemItemUnAuthorizedAccess,Microsoft.PowerShell.Commands.RemoveItemCommand 
Remove-Item : Cannot remove item C:\dev\windows\bin\DotNet\Debug\Shunra.Common.XML: Access to the path 'Shunra.Common.XML' is denied. 
At line:1 char:6 
+ rmdir <<<< -Recurse .\bin 
    + CategoryInfo   : PermissionDenied: (Shunra.Common.XML:FileInfo) [Remove-Item], UnauthorizedAccessException 
    + FullyQualifiedErrorId : RemoveFileSystemItemUnAuthorizedAccess,Microsoft.PowerShell.Commands.RemoveItemCommand 
Remove-Item : Directory C:\dev\windows\bin\DotNet\Debug cannot be removed because it is not empty. 
At line:1 char:6 
+ rmdir <<<< -Recurse .\bin 
    + CategoryInfo   : WriteError: (Debug:DirectoryInfo) [Remove-Item], IOException 
    + FullyQualifiedErrorId : DirectoryNotEmpty,Microsoft.PowerShell.Commands.RemoveItemCommand 

Remove-Item : Directory C:\dev\windows\bin\DotNet cannot be removed because it is not empty. 
At line:1 char:6 
+ rmdir <<<< -Recurse .\bin 
    + CategoryInfo   : WriteError: (DotNet:DirectoryInfo) [Remove-Item], IOException 
    + FullyQualifiedErrorId : DirectoryNotEmpty,Microsoft.PowerShell.Commands.RemoveItemCommand 

Remove-Item : Directory C:\dev\windows\bin cannot be removed because it is not empty. 
At line:1 char:6 
+ rmdir <<<< -Recurse .\bin 
    + CategoryInfo   : WriteError: (C:\dev\windows\bin:DirectoryInfo) [Remove-Item], IOException 
    + FullyQualifiedErrorId : DirectoryNotEmpty,Microsoft.PowerShell.Commands.RemoveItemCommand 

PS C:\dev\windows> 

Ahora lo comparan con la cáscara ordinaria (cmd.exe):

C:\dev\windows>rmdir /s/q bin 
bin\DotNet\Debug\IMPLEM~1\Common.DTO.XML - Access is denied. 
bin\DotNet\Debug\Shunra.Common.Contract.XML - Access is denied. 
bin\DotNet\Debug\Shunra.Common.XML - Access is denied. 

C:\dev\windows> 

La diferencia es obvia y me gusta la laconicity de cmd. exe mucho más que la verbosidad de la powershell.

¿Puedo tener la misma laconicidad en powershell? Si no fuera por todos los comandos, ¿tal vez solo para Remove-Item, que uso a menudo?

Respuesta

6

El resultado más cercano que puede obtener es cambiando el valor global $ ErrorView a "CategoryView". Otra forma es crear tu propia vista.

+0

"CategoryView" es lo suficientemente bueno para mí, gracias. – mark

+3

Aquí hay material fuente para la respuesta de Shay: http://blogs.msdn.com/b/powershell/archive/2006/06/21/641010.aspx – halr9000

+0

@ halr9000 - gracias por la información. Si lo arreglas como una respuesta, estaré feliz de darte crédito por eso. – mark

Cuestiones relacionadas