我在PS脚本方面还是很新的,所以我所做的大部分工作都是从例子中得到的。我现在要做的是搜索一个目录中的所有文件夹,然后重命名它们,将祖父母文件夹的名称添加到文件名中。例如:
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‘参数抛出一个错误,我已经尝试删除该参数,但这不起作用。我试图复制将父文件夹添加到文件名中的代码,但我似乎无法找到爷爷文件夹名并将名称添加到文件中。
发布于 2014-02-26 22:04:18
在PowerShell v3和更新版本上,您可以使用项的Parent属性:
Get-ChildItem 'c:\export\' -Recurse *.pdf | % {
Rename-Item -NewName {$_.Parent.Parent.Name + "_" + $_.Name}
}https://stackoverflow.com/questions/22053364
复制相似问题