无法使用 Synology 上共享文件夹位置中的重命名项重命名子目录中的文件
Cannot rename files in sub directories with rename-item in Shared Folder location on Synology
我在 Synology NAS 上的共享文件夹的子目录中有几个 .mkv
文件,这些文件的末尾附加了以下 .partial~
扩展名。
我正在尝试从这些文件的末尾删除 .partial~
,并忽略位于其中的所有其他文件,例如 .jpg
Folder\File 结构例如:
\NAS\SharedFolder\Subdirectory1\Subdirectory2\file.mkv.partial~
\NAS\SharedFolder\Subdirectory1\file.mkv.partial~
\NAS\SharedFolder\Subdirectory1\file.jpg
我创建了以下 powershell 脚本 strippartialext.ps1
,当 运行 在我的 Windows 10 PC 上从子目录 1 或子目录 2 中时,它可以正常工作:
\NAS\SharedFolder\Subdirectory1\strippartialext.ps1 [WORKS HERE]
\NAS\SharedFolder\Subdirectory1\Subdirectory2\strippartialext.ps1 [WORKS HERE]
它删除了下面的所有内容(并进入下面的子目录)但是当 运行 来自顶部 SharedFolder 位置时不起作用:
\NAS\SharedFolder\strippartialext.ps1 [DOES NOT WORK HERE]
Get-ChildItem -File -Recurse | % { Rename-Item -Path $_.PSPath -NewName $_.Name.replace(".partial~","")}
从 SharedFolder 位置 运行ning .ps1 文件时出现以下错误:
Rename-Item : Cannot rename because item at 'Microsoft.PowerShell.Core\FileSystem::\NAS\sharedfolder\Sub Directory1\file.jpg' does not exist.
At \NAS\sharedfolder\strippartialext.ps1:1 char:36
+ ... curse | % { Rename-Item -Path $.PSPath -NewName $.Name.replace(".pa ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (:) [Rename-Item], PSInvalidOperationException
+ FullyQualifiedErrorId : InvalidOperation,Microsoft.PowerShell.Commands.RenameItemCommand
我想知道如何将此文件从 SharedFolder 位置获取到 运行,因为我只需要 运行 此脚本一次即可覆盖我的所有文件而不是数百次分别在每个子目录文件夹中。
Rename-Item
cmdlet 接受管道输入,所以我会尝试:
Get-ChildItem -File -Recurse "*.partial~" |
Rename-Item -NewName {$_.Name.replace(".partial~","")} -WhatIf
如果输出看起来正常,删除 hte -WhatIf
我在 Synology NAS 上的共享文件夹的子目录中有几个 .mkv
文件,这些文件的末尾附加了以下 .partial~
扩展名。
我正在尝试从这些文件的末尾删除 .partial~
,并忽略位于其中的所有其他文件,例如 .jpg
Folder\File 结构例如:
\NAS\SharedFolder\Subdirectory1\Subdirectory2\file.mkv.partial~
\NAS\SharedFolder\Subdirectory1\file.mkv.partial~
\NAS\SharedFolder\Subdirectory1\file.jpg
我创建了以下 powershell 脚本 strippartialext.ps1
,当 运行 在我的 Windows 10 PC 上从子目录 1 或子目录 2 中时,它可以正常工作:
\NAS\SharedFolder\Subdirectory1\strippartialext.ps1 [WORKS HERE]
\NAS\SharedFolder\Subdirectory1\Subdirectory2\strippartialext.ps1 [WORKS HERE]
它删除了下面的所有内容(并进入下面的子目录)但是当 运行 来自顶部 SharedFolder 位置时不起作用:
\NAS\SharedFolder\strippartialext.ps1 [DOES NOT WORK HERE]
Get-ChildItem -File -Recurse | % { Rename-Item -Path $_.PSPath -NewName $_.Name.replace(".partial~","")}
从 SharedFolder 位置 运行ning .ps1 文件时出现以下错误:
Rename-Item : Cannot rename because item at 'Microsoft.PowerShell.Core\FileSystem::\NAS\sharedfolder\Sub Directory1\file.jpg' does not exist. At \NAS\sharedfolder\strippartialext.ps1:1 char:36 + ... curse | % { Rename-Item -Path $.PSPath -NewName $.Name.replace(".pa ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidOperation: (:) [Rename-Item], PSInvalidOperationException + FullyQualifiedErrorId : InvalidOperation,Microsoft.PowerShell.Commands.RenameItemCommand
我想知道如何将此文件从 SharedFolder 位置获取到 运行,因为我只需要 运行 此脚本一次即可覆盖我的所有文件而不是数百次分别在每个子目录文件夹中。
Rename-Item
cmdlet 接受管道输入,所以我会尝试:
Get-ChildItem -File -Recurse "*.partial~" |
Rename-Item -NewName {$_.Name.replace(".partial~","")} -WhatIf
如果输出看起来正常,删除 hte -WhatIf