将子文件夹复制到新目录并将其重命名为之前的父文件夹名称

问题描述 投票:0回答:1

我有大约 2000 个文件夹需要移动,我正在寻找比复制/粘贴重命名更好的方法。

当前文件夹结构是这样的:Job>Asset>Reports。 我想做的是将所有报告文件夹(以及所有文件)合并到一个文件夹下,并将报告文件夹重命名为资产名称。

目前在我的测试文件夹中,我有这段代码可以复制文件夹和内容,但我无法对其进行重命名,因此在复制第一个文件夹后它会失败。

Get-ChildItem -path“C:\Test Source”-include“Reports”-recurse |复制项目-目标“C:\测试目标”-recurse-container |重命名项目-NewName {$_.Directory.Parent.Name}

我假设问题出在我设置重命名项目的方式上,因为它在将文件夹复制到新位置后不会重命名该文件夹。我也不想重命名原始路径中的报告文件夹,只需重命名新路径即可。

感谢您的帮助!

powershell batch-file directory rename
1个回答
0
投票

好吧,在花了2个小时试图弄清楚之后,我在终于发布问题后5分钟就弄清楚了......

解决方案是完全忽略重命名项目功能,只使用 join-path

工作代码如下。

Get-ChildItem -path“C:\Test Source”-include“Reports”-recurse | Copy-Item -Destination {加入路径“C:\Test Destination”(“$($_.Parent.Name)”)} -recurse -container

我将把这个作为耻辱的标志,并希望帮助任何有类似疑问的人,因为我在任何地方都找不到一个好的答案,不得不拼凑出一些不同的解决方案。

© www.soinside.com 2019 - 2024. All rights reserved.