PowerShell - 将祖父母文件夹名称添加到文件名

2024-03-19

我对 PS 脚本还很陌生,所以我所做的大部分工作都是从示例中拼凑而成的。我现在想做的是搜索 PDF 目录中的所有文件夹,然后重命名它们,将祖父文件夹名称添加到文件名中。例如:

c:\export\123\notes\abc.pdf 将重命名为 c:\export\123\notes\123_abc.pdf

脚本的其余部分工作正常,使用 GhostScript 将它们转换为 TIF 并将它们移动到另一台服务器。问题在于,所有 PDF 的名称都相似,但“123”文件夹对于文档来说是唯一的。以下是我设法收集到的内容:

Get-ChildItem 'c:\export\' -Recurse *.pdf |
  ForEach-Object {
  $parent = $_.Parent
  $grandparent = $parent.Parent

  Rename-Item -NewName {$_.$grandparent + "_" + $_.Name}
  }

该脚本在“-NewName”参数处引发错误,我已尝试删除该参数,但这不起作用。我尝试复制将父文件夹添加到文件名的代码,但我似乎无法找到祖父文件夹名称并将名称添加到文件中一起工作。


在 PowerShell v3 及更高版本上,您可以使用该项目的Parent财产:

Get-ChildItem 'c:\export\' -Recurse *.pdf | % {
  Rename-Item -NewName {$_.Parent.Parent.Name + "_" + $_.Name}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PowerShell - 将祖父母文件夹名称添加到文件名 的相关文章

随机推荐