我有一个偶尔会不同步的谷歌驱动器文件夹。Google(或某人)会将 (1) 附加到目录/文件名。然后它将删除原始目录,我将拥有一堆名为“xxx(1)”的文件夹和文件。
我一直在尝试编写一个 powershell 脚本,该脚本将通过简单地删除“(1)”部分来抓取目录树并重命名文件夹/文件。我意识到这可能会导致一些冲突,但我希望使用脚本替换其中的大部分。我不太关心目录结构,如果需要我会恢复,但这有点麻烦。
我已经尝试了几个powershell脚本,到目前为止我最接近的是这个......
这将返回正确的新文件夹名称
Get-ChildItem -Path "* (1)" -Recurse | select { $_.FullName.Replace(" (1)", "")}
所以我尝试了这个...
Get-ChildItem -Path "* (1)" -Recurse | Replace-Item -Path $_.FullName -Destination $_.FullName.Replace(" (1)", "") -WhatIf
我收到错误“您不能在空值表达式上调用方法”。
You cannot call a method on a null-valued expression.
At line:1 char:1
+ Get-ChildItem -Path "* (1)" -Recurse | rename-item $_.FullName $_.Fu ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (:) [], RuntimeException
+ FullyQualifiedErrorId : InvokeMethodOnNull