gpt4 book ai didi

powershell - 格式化Remove-Item命令的详细输出

转载 作者:行者123 更新时间:2023-12-03 16:40:54 24 4
gpt4 key购买 nike

我有以下命令:

Get-ChildItem $build_path `
-Include *.bak, *.orig, *.txt, *.chirp.config `
-Recurse | Remove-Item -Verbose

清除VS解决方案的build文件夹中的某些文件。我使用详细开关,以便可以看到正在删除的文件。它工作正常,但输出太冗长:
VERBOSE: Performing operation "Remove File" on Target "R:\Visual Studio 2010\Projects\SomeProject\SomeProject.Web.build\App_Readme\glimpse.mvc3.readme.txt".
VERBOSE: Performing operation "Remove File" on Target "R:\Visual Studio 2010\Projects\SomeProject\SomeProject.Web.build\App_Readme\glimpse.readme.txt".

我只需要看到类似的内容:
Removing file \App_Readme\glimpse.mvc3.readme.txt".
Removing file \App_Readme\glimpse.readme.txt".
...

我知道我可以使用foreach语句和Write-Host命令来执行此操作,但是我相信可以通过一些流水线或其他操作来完成。有任何想法吗?

最佳答案

使用ForEach-Object非常简单:

Get-ChildItem $build_path `
-Include *.bak, *.orig, *.txt, *.chirp.config `
-Recurse | foreach{ "Removing file $($_.FullName)"; Remove-Item $_}

正如@ user978511所指出的那样,使用详细输出会更加复杂:
$ps = [PowerShell]::Create()

$null = $ps.AddScript(@'
Get-ChildItem $build_path `
-Include *.bak, *.orig, *.txt, *.chirp.config `
-Recurse | Remove-Item -Verbose
'@)

$ps.Invoke()
$ps.Streams.Verbose -replace '(.*)Target "(.*)"(.*)','Removing File $2'

关于powershell - 格式化Remove-Item命令的详细输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8668356/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com