powershell根据时间戳从不同的文件夹复制.txt文件,并将其粘贴到相同子文件夹的备份文件夹中

问题描述 投票:-1回答:2

如何从以下结构复制和粘贴文件?

  • 源文件夹-D:\ ClientData * \ HrPay \ Group * \ STP
  • 目标文件夹-D:\ ClientData * \ HrPay \ Group * \ STP_BKP

我需要根据时间戳将所有.txt文件从源文件夹复制到目标文件夹。如果它是一个文件夹,我可以复制和粘贴,但是它有多个文件夹和子文件夹。

源文件夹

  • D:\ ClientData \ 12 \ HrPay \ Group \ grp1 \ STP
  • D:\ ClientData \ 12 \ HrPay \ Group \ grp2 \ STP
  • D:\ ClientData \ 13 \ HrPay \ Group \ grp1 \ STP
  • D:\ ClientData \ 14 \ HrPay \ Group \ grp1 \ STP
  • D:\ ClientData \ 15 \ HrPay \ Group \ grp2 \ STP

任何人都可以指导我如何遍历所有这些文件夹并将其粘贴到带有备份子文件夹的同一文件夹中吗?

powershell timestamp copy-paste shared-directory multiple
2个回答
0
投票

如果使用Copy-Item,则可以使用-Recurse参数来复制子文件夹。


0
投票

尝试一下:

#Note: Path must be parent of first directory to create a
#      backup for!
$Dirs = Get-ChildItem -path "G:\Test" -Recurse  | 
   Where-Object {$_.PSIsContainer -eq $True}  

#--- Create Backup Directories & Copy Files ---
$Dirs | ForEach-Object  {

          $NIArgs = @{Path     = "$($_.FullName)"
                      Name     = "Backup"
                      ItemType = "Directory"}

          Try   { New-Item @NIArgs }
          Catch {} #Directory Exists

          $BkUpDir =  "$($_.FullName)" + "\Backup"

          Get-ChildItem -path "$($_.FullName)"         | 
            Where-Object {$_.PSIsContainer -eq $False} |
            Copy-Item -Destination "$BkUpDir"

        } #End ForEach-Object
© www.soinside.com 2019 - 2024. All rights reserved.