Powershell将所有子文件夹中的特定文件复制到单个文件夹

治八

我正在尝试将音乐库中的所有cover.jpg文件复制到一个文件夹中。到目前为止,我的尝试要么使我在目标位置放了一个文件,要么使每个所需文件都放了我,但也将我放到了与源匹配的自己的文件夹中(即,为每个专辑命名的文件夹仅包含cover.jpg文件)。

Get-ChildItem "C:\Music" -recurse -filter *.jpg | Copy-Item -Destination "C:\Destination"

我意识到copy-item命令只是覆盖以前的副本,因此只剩下一个文件。然后,我尝试通过移动文件然后重命名来沿重命名路线移动,但是当然失败了,因为我基于重命名的文件夹现在已更改。在复制文件之前,我不想更改文件名,因为其他程序仍然需要cover.jpg才能起作用。

我的问题是...是否有人知道如何递归浏览音乐库中的每个文件夹以找到cover.jpg文件,将其重命名以匹配父文件夹(甚至可能的话,祖父母和父文件夹),然后将该文件复制到一个新文件夹,以确保不在此目的地复制或创建任何新文件夹?

另外,可以检查文件是否已经存在,以便将来运行时仅复制新文件吗?

该库的文件结构非常简单。\ Music \ Artist \ Album title \ cover.jpg

根据

如果您具有这样的音乐库结构,则最简单的方法是使用属性,Directory并且Parent每个Get-ChildItem包含的返回的FileInfo对象都包含:

$sourcePath  = 'C:\Music'
$destination = 'C:\Destination'

# if the destination folder does not already exist, create it
if (!(Test-Path -Path $destination -PathType Container)) {
    $null = New-Item -Path $destination -ItemType Directory
}


Get-ChildItem -Path $sourcePath -Filter '*.jpg' -File -Recurse | ForEach-Object {
    $newName = '{0}_{1}_{2}' -f $_.Directory.Parent.Name, $_.Directory.Name, $_.Name
    $_ | Copy-Item -Destination (Join-Path -Path $destination -ChildPath $newName)
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Powershell:将所有文件从文件夹和子文件夹移至单个文件夹

使用R将多个文件从多个文件夹复制到单个文件夹

将文件复制到文件夹和所有子文件夹中

尝试将具有特定扩展名的文件从源文件夹复制到目标文件夹

将文本文件中列出的特定文件从源文件夹复制到目标文件夹

将子文件夹中的所有文件复制到新文件夹中

如何将一个文件复制到所有子文件夹

将图像复制到特定文件夹

我需要在特定日期创建的所有子文件夹中找到所有文本文件,将其打开,然后将内容复制到单个文本文件中

使用R将文件夹中的所有PDF和所有子文件夹复制到新文件夹

将子文件夹内的所有内容复制到主文件夹?

如何将系统中的所有.sol文件复制到特定文件夹

ROBOCOPY-将文件夹内容复制到带有文件列表的单个文件夹

将文件复制到所有子文件夹和所有子文件夹

将文件夹中的所有子文件夹压缩为单个zip文件

将特定文件夹内的所有文件和文件夹复制到批处理文件中

将内容所在的文件夹中的所有文件复制到文档中

如何使用xcopy将子文件夹复制到子文件夹中?

将所有子文件夹请求重定向到特定文件夹

如何将所有文件从txt文件的路径复制到文件夹?

MSBuild将文件复制到没有文件层次结构的单个文件夹中

将文件夹中的所有内容复制到两个文件目标文件夹中

将单个文件复制到选定的子文件夹

如何将所有文件夹复制到同一目录中?

通过排除具有特定名称的所有子文件夹将文件夹复制到另一个位置

如何将文件夹中的文件复制到多个文件夹中

将所有捆绑资源复制到 Documents 目录中的单独文件夹中

Powershell:将父文件夹中的所有子目录和内容复制到另一个文件夹目标

AppleScript - 将所有文件/文件夹从源文件夹复制到目标文件夹