我对 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(使用前将#替换为@)