我正在尝试复制一个名为“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 }