有一个包含大量文件的文件夹。只需要将某些文件复制到其他文件夹。有一个列表包含需要复制的文件。
我尝试使用copy-item,但由于目标子文件夹不存在,因此会抛出异常"无法找到路径的一部分“
有一种简单的方法可以解决这个问题吗?
$targetFolderName = "C:\temp\source"
$sourceFolderName = "C:\temp\target"
$imagesList = (
"C:\temp\source/en/headers/test1.png",
"C:\temp\source/fr/headers/test2png"
)
foreach ($itemToCopy in $imagesList)
{
$targetPathAndFile = $itemToCopy.Replace( $sourceFolderName , $targetFolderName )
Copy-Item -Path $itemToCopy -Destination $targetPathAndFile
}
答案 0 :(得分:12)
尝试将此作为foreach循环。它会在复制文件之前创建目标文件夹和必要的子文件夹。
foreach ($itemToCopy in $imagesList)
{
$targetPathAndFile = $itemToCopy.Replace( $sourceFolderName , $targetFolderName )
$targetfolder = Split-Path $targetPathAndFile -Parent
#If destination folder doesn't exist
if (!(Test-Path $targetfolder -PathType Container)) {
#Create destination folder
New-Item -Path $targetfolder -ItemType Directory -Force
}
Copy-Item -Path $itemToCopy -Destination $targetPathAndFile
}