我正试图复制一个名为“dat”的文件。 这个文件没有扩展名。 事情是,虽然在父文件夹“个人”下,我有500个文件夹,所有这500个文件夹都有'dat'文件。 我有兴趣复制所有这些'dat'文件,并把它们放在我的目标目录。
所以当我将这些'dat'文件粘贴到目标目录中时,我希望按如下方式命名它们:
“Folder_they_were_residing_in.dat”
因此,所有的dat文件将被重命名为它们所在的文件夹名称,其扩展名为“dat”。
这可能吗?
根据需要configuration$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 ) }
PS H:\> foreach($_ in Get-ChildItem dat -Recurse) { Copy-Item $_.Fullname H:\dest\$($_.Directory.ToString().Split("\")[-1])`.dat }