如果目标目录中不存在文件,则移动Powershell文件结构

时间:2018-02-07 08:01:25

标签: file powershell

我想移动一个文件结构,由.zip文件解压缩到目标目录。

提取ZIP工作,移动文件也是如此。

但是有几种情况,目标目录已经包含一个与文件结构到副本同名的文件。

也许我想将所有文件从/ temp /复制到/ target /

有一个文件/temp/new/2/test.txt,它已存在于/target/new/2/test.txt

=>在这种情况下,我不想将任何文件从Temp文件夹复制到Target文件夹。

我如何通过PowerShell实现这一目标?

方式,我现在正在移动文件:

Get-ChildItem -Path $unzipDir -Recurse | Move-Item -Destination $targetDir

谢谢:)

2 个答案:

答案 0 :(得分:1)

过滤掉目标路径已经存在的文件。

Get-ChildItem -Path $unzipDir -Recurse |
Where { -not Test-Path (Join-Path $targetDir $_) } |
Move-Item -Destination $targetDir
  • Where正文中,$_指的是当前文件。
  • Join-Path涉及从两个部分构建有效路径。

答案 1 :(得分:0)

if(-not (Test-Path "./target/new/2/test.txt")){
    Get-ChildItem -Path $unzipDir -Recurse | Move-Item -Destination $targetDir
}