Powershell 脚本从多个文件夹复制名为“dat”的文件

Powershell 脚本从多个文件夹复制名为“dat”的文件

我正在尝试复制一个名为“dat”的文件。此文件没有扩展名。但问题是,在父文件夹“个人”下,我有 500 个文件夹,而这 500 个文件夹都包含“dat”文件。我想复制所有这些“dat”文件并将它们放在我的目标目录中。

因此,当我将这些“dat”文件粘贴到目标目录时,我希望按如下方式命名它们:

“文件夹_他们_居住_在.dat”

因此,所有 dat 文件都将重命名为它们所在的文件夹名称,并以“dat”为扩展名。

这可能吗?

答案1

配置$source$dest根据需要包括尾部斜杠。

$source = "H:\personal\"
$dest   = "H:\archive\"

Get-ChildItem -Recurse -Path $source |
    Where-Object { $_.PsIsContainer -eq $false -and $_.Name -eq "dat" } |
        ForEach-Object { $_.CopyTo( $( $dest + $_.Directory.Name + ".dat" ), $true ) }

答案2

PS H:\> foreach($_ in Get-ChildItem dat -Recurse) { Copy-Item $_.Fullname H:\dest\$($_.Directory.ToString().Split("\")[-1])`.dat }

相关内容