复制前检查文件是否存在于源文件中

时间:2018-01-19 23:00:52

标签: powershell

我有文件列表,我正在尝试复制到另一个位置。

$files = @("abc.ps1", "def.ps1")
$scriptFiles | Copy-Item -Destination "destinationlocation" -Force

所以当文件abc.ps1不可用时我收到错误,有没有办法通过避免写一个循环并用单行写入来Test-Path

1 个答案:

答案 0 :(得分:3)

Test-Path子句中过滤掉Where中不存在的那些。

$files = @("abc.ps1", "def.ps1")
$files | Where { Test-Path $_ } | ForEach { $file = Get-Item $_; Copy-Item "destinationlocation\$_" -Force; }

或相同脚本的简写版本:

$files = @("abc.ps1", "def.ps1")
$files | ?{ Test-Path $_ } | %{ $file = gi $_; cp $file.FullName "destinationlocation\$_" -Force; }