2011-10-14 11 views
6

、次のコンソールトランスクリプトを考えてみます。エラーでPowerShellを冗長にする方法はありますか?例えば

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> 

は今通常のシェル(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> 

差は明らかであると私はCMDのlaconicityが好き。 exeは、PowerShellの冗長さ以上のものです。

私はpowershellで同じ不気味さを持つことができますか?もし私が頻繁に使用するRemove-Itemのためのコマンドではないのであれば?

答えて

6

グローバルな$ ErrorViewの値を "CategoryView"に変更すると最も近い結果が得られます。別の方法は、独自のビューを作成することです。

+0

"CategoryView"は私にとって十分です。ありがとうございます。 – mark

+3

Shayの答えのためのいくつかの資料があります:http://blogs.msdn.com/b/powershell/archive/2006/06/21/641010.aspx – halr9000

+0

@ halr9000 - 情報ありがとうございます。あなたが答えとしてそれを手配すれば、私はあなたにそれを信じてうれしいです。 – mark

関連する問題