我有文件列表,我正在尝试复制到另一个位置。
$files = @("abc.ps1", "def.ps1")
$scriptFiles | Copy-Item -Destination "destinationlocation" -Force
所以当文件abc.ps1不可用时我收到错误,有没有办法通过避免写一个循环并用单行写入来Test-Path
?
答案 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; }