gpt4 book ai didi

powershell - 我的递归删除有什么问题?

转载 作者:行者123 更新时间:2023-12-03 00:38:26 26 4
gpt4 key购买 nike

Get-ChildItem -recurse | ? {$_.Extension -eq ".obj" } | %{del $_}
~~~~~~
CategoryInfo : ObjectNotFound: (C:\Temp\compilerLimits\template.obj:String) [Remove-Item], ItemNotFoundException
FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.RemoveItemCommand

尝试递归删除所有 .obj 文件;
相反,我得到了这个。

最佳答案

试试这样:

Get-ChildItem -recurse *.obj | Remove-Item

| %{del $_} 的情况下, $_是一个 System.IO.FileInfo 对象,当 PowerShell 将其用于 LiteralPath 参数时,它会看到 LiteralPath 参数采用字符串。 FileInfo 到字符串的转换似乎使用 FileInfo.ToString() 方法,在某些情况下(如子目录)不包括完整路径 - 只是文件名。这将导致您看到的错误。当您通过管道输入 FileInfo 对象时,将使用管道参数绑定(bind)规则。 LiteralPath 参数有一个名为 PSPath 的别名。此属性由 PowerShell 的类型系统添加到每个 FileInfo 对象。您可以通过 Get-ChildItem *.obj | Get-Member 看到这一点.由于 LiteralPath 参数的 ValueFromPipelineByPropertyName 设置为 true,PowerShell 将从对象的 PSPath 属性中获取参数值。

您可以在 Item 8 of my Effective PowerShell ebook 中了解更多信息。 .

关于powershell - 我的递归删除有什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22624736/

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