gpt4 book ai didi

powershell - Powershell递归文件名读取并重命名

转载 作者:行者123 更新时间:2023-12-02 23:57:34 24 4
gpt4 key购买 nike

我已经从ftp服务器上下载了使用wget并强制使用ascii编码的目录树,因此现在我拥有很多文件夹和文件名,例如“foo%C3%BC”(某些文件/文件夹已经具有正确的名称,因为它们仅有ascii字符)。

我现在正尝试使用powershell将其转换回utf-8,我尝试编写以下行来完成此操作

Get-ChildItem C:\Users\Administrator\Desktop\folder -Recurse | select BaseName | Rename-Item -NewName {[System.Web.HttpUtility]::UrlDecode{BaseName}}

但这不起作用,并给我以下错误
Rename-Item : Cannot rename because item at '@{BaseName=filename}' does not exist.
At line:1 char:88
+ ... ect BaseName | Rename-Item -NewName {[System.Web.HttpUtility]::UrlDecode{BaseNam ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (:) [Rename-Item], PSInvalidOperationException
+ FullyQualifiedErrorId : InvalidOperation,Microsoft.PowerShell.Commands.RenameItemCommand

一遍又一遍(我想每找到一个文件一次)。

在“选择BaseName”之后,该命令一直有效地运行到管道,因此问题出在重命名部分。

有谁知道如何使它工作?

最佳答案

  [Reflection.Assembly]::loadWithPartialName("System.Web") | out-null   
$data = Get-ChildItem C:\Users\Administrator\Desktop\folder -Recurse
ForEach($dat in $data){
$newName = [System.Web.HttpUtility]::UrlDecode($dat.Name);
$dat | Rename-Item -NewName $newName -Force
}

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

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