gpt4 book ai didi

powershell - 在Powershell中递归重命名文件

转载 作者:行者123 更新时间:2023-12-04 03:34:08 24 4
gpt4 key购买 nike

调用此powershell命令并得到一个错误。使我抓狂。

Prompt> get-childitem -recurse ./ *NYCSCA* |  where-object { $_.Name -like
"*NYCSCA*" } | rename-item $_ -newname $_.Name.Replace(" ","_") -whatif

这是响应:
You cannot call a method on a null-valued expression.
At line:1 char:140
+ get-childitem -recurse ./ *NYCSCA* | where-object { $_.Name -like "*NYCSCA*" } | select FullName | rename-item $_ -n
ewname $_.Name.Replace <<<< (" ","_") -whatif
+ CategoryInfo : InvalidOperation: (Replace:String) [], RuntimeException
+ FullyQualifiedErrorId : InvokeMethodOnNull

如果删除最后一部分,则会得到文件列表。有什么线索吗?显然,我还没有对powershell感到震惊。

注意:我试图将其发布给 super 用户,但是该站点现在始终失败-不允许我添加这个确切的问题。

在这里,它大大简化了。我什至无法得到这个经典的例子。
gci  *NYCSCA*  | ren $_ ($_.Name).Replace("foo","bar")

谢谢@ JNK,%做到了。如果您有兴趣,我需要的解决方案是:
gci -recurse | where-object{ $_.Name -like "*NYCSCA*"} | %{rename-item $_.FullName $_.FullName.Replace("NYCSCA","SDUSD") }

最佳答案

我认为您需要foreach-object:

get-childitem -recurse ./ *NYCSCA* |  where-object { $_.Name -like
"*NYCSCA*" } | % {rename-item $_ -newname $_.Name.Replace(" ","_") -whatif}

管道数组不能重命名为集合。

关于powershell - 在Powershell中递归重命名文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7181804/

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