gpt4 book ai didi

powershell - 如何使用Powershell移动和重命名多个文件?

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

我有大量文件(> 400万个),需要重命名并将它们以小步移动到另一个文件夹。

我是powershell的初学者,但是我已经设法将它们移动到100个文件的小包装中(powershell脚本作为计划任务执行)。

但是到目前为止,我无法重命名文件。在每个文件中,有两个字符串需要替换。
除重命名部分(第12和13行)外,以下代码可以正常工作:

#Get 'n' number of files
$FileLimit = 100

$PickupDirectory = Get-ChildItem -Path "\\server\path$\ERROR\subfolder\"
$DropDirectory = "\\server\path$\destination\"

$Counter = 0
foreach ($file in $PickupDirectory)
{
if ($Counter -ne $FileLimit)
{
$file | Rename-Item -NewName {$_.name -replace '999999','367'}
$file | Rename-Item -NewName {$_.name -replace 'oldname','newname'}

$Destination = $DropDirectory+$file.Name

Move-Item $file.FullName -destination $Destination
$Counter++
}
}
exit

重命名这些文件的正确方法是什么?

非常感谢你的帮助!
最好的祝愿
菲利普

编辑:对不起,这是错误日志:
Rename-Item : Cannot rename because item at 'Microsoft.PowerShell.Core\FileSystem::\\server\path$\ERROR\subfolder\1566392#5990762$20180116^999999_2018_01_16_oldname_1566392_Kägi.pdf' does not exist.
At C:\Scripts\mv_Verordnung_für_Physiotherapie.ps1:12 char:28
+ ... pDirectory | Rename-Item -NewName {$_.name -replace '^999999','^367'}
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (:) [Rename-Item], PSInvalidOperationException
+ FullyQualifiedErrorId : InvalidOperation,Microsoft.PowerShell.Commands.RenameItemCommand

Edit2:用注释中的提示更新了代码。错误仍然相同。

最佳答案

您应该尽早使用Get-ChildItem =>进行限制(如果需要的话)

$PickupDirectory = Get-ChildItem -Path "\\server\path$\ERROR\subfolder\" | Select -First $FileLimit
  • 而不是使用当前迭代的项目($ file),而是使用整个数组$PickupDirectory
  • 您不能将2. replace应用于已更改的值。
  • 而不是重命名和移动,只需一步即可完成。
  • #Get 'n' number of files
    $FileLimit = 100

    $PickupDirectory = Get-ChildItem -Path "\\server\path$\ERROR\subfolder\" | Select -First $FileLimit

    $DropDirectory = "\\server\path$\destination\"

    foreach ($file in $PickupDirectory){
    $Destination = Join-Path $DropDirectory ($file.Name -replace '^999999','^367' `
    -replace 'oldname','newname')
    $file | Move-Item -Destination $Destination
    }

    关于powershell - 如何使用Powershell移动和重命名多个文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57557217/

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