无法使用Synology {共享文件夹位置}中的重命名项重命名子目录中的文件

时间:2018-05-19 01:01:12

标签: powershell share synology

我在共享文件夹的子目录中的Synology NAS上有几个.mkv个文件,最后附加了.partial~个扩展名。

我正在尝试从这些文件的末尾删除.partial~,并忽略位于.jpg

内的所有其他文件

文件夹\文件结构例如:

  

\\ NAS \ SharedFolder \ Subdirectory1 \ Subdirectory2 \ file.mkv.partial~

     

\\ NAS \ SharedFolder \ Subdirectory1 \ file.mkv.partial〜

     

\\ NAS \ SharedFolder \ Subdirectory1 \ file.jpg

我创建了以下powershell脚本strippartialext.ps1,该脚本在我的Windows 10 PC上从Subdirectory1或Subdirectory2中运行时正常工作:

  

\\ NAS \ SharedFolder \ Subdirectory1 \ strippartialext.ps1 [WORKS HERE]

     

\\ NAS \ SharedFolder \ Subdirectory1 \ Subdirectory2 \ strippartialext.ps1 [WORKS HERE]

它会删除下面的所有内容(以及下面的子目录)但从顶级SharedFolder位置运行时不起作用:

  

\\ NAS \ SharedFolder \ strippartialext.ps1 [不在这里工作]

Get-ChildItem -File -Recurse | % { Rename-Item -Path $_.PSPath -NewName $_.Name.replace(".partial~","")}

从SharedFolder位置运行.ps1文件时出现以下错误:

  

重命名项目:无法重命名,因为“Microsoft.PowerShell.Core \ FileSystem :: \ NAS \ sharedfolder \ Sub Directory1 \ file.jpg”中的项目不存在。   在\ NAS \ sharedfolder \ strippartialext.ps1:1 char:36   + ...诅咒| %{Rename-Item -Path $ .PSPath -NewName $ .Name.replace(“。pa ...   + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~       + CategoryInfo:InvalidOperation:(:) [Rename-Item],PSInvalidOperationException       + FullyQualifiedErrorId:InvalidOperation,Microsoft.PowerShell.Commands.RenameItemCommand

我想知道如何从SharedFolder位置运行此文件,因为我只需要运行此脚本一次以覆盖我的所有文件,而不是在每个子目录文件夹中分别覆盖数百次。

1 个答案:

答案 0 :(得分:0)

Rename-Item cmdlet接受管道输入,因此我尝试:

Get-ChildItem -File -Recurse "*.partial~" | 
    Rename-Item -NewName {$_.Name.replace(".partial~","")} -WhatIf

如果输出看起来没问题,请删除hte -WhatIf