我在完成Powershell脚本时遇到了一些麻烦。我有一个程序可以将图像下载到一个临时文件夹中,然后在一个小时内它将删除图像文件。有时我想保留一些文件,因此我正在创建一个Powershell脚本,将图像文件从临时文件夹复制到新文件夹,以便我可以对它们进行排序并保留我想要的内容。
在网上搜索时,我在TomsITpro上的“如何使用PowerShell同步文件夹”上找到了一个脚本。此脚本在两个文件夹之间双向复制文件。当我尝试将其修改为仅以一种方式复制时,出现Powershell错误。
$DownloadFolder = 'D:\TempImages'
$KeepFolder = 'D:\KeepImages'
$DownloadFiles = Get-ChildItem -Path $DownloadFolder
$KeepFiles = Get-ChildItem -Path $KeepFolder
$FileDiffs = Compare-Object -ReferenceObject $DownloadFiles -DifferenceObject $KeepFiles
$FileDiffs | foreach {
$copyParams = @{
'Path' = $_.InputObject.Fullname
}
if ($_.SideIndicator -eq '=>')
{
$copyParams.Destination = $KeepFolder
}
Copy-Item @copyParams
}
该脚本可以很好地进行工作并进行比较,并且仅在新文件已经存在的情况下才进行复制。问题是当我从d:\ script文件夹运行它时,它将所有文件复制到d:\ script文件夹而不是目标文件夹D:\ KeepImages。我在这里做错了什么?
此PowerShell脚本的任何帮助将不胜感激。
$DownloadFolder = 'D:\TempImages'
$KeepFolder = 'D:\KeepImages'
$DownloadFiles = Get-ChildItem -Path $DownloadFolder
$KeepFiles = Get-ChildItem -Path $KeepFolder
$FileDiffs = Compare-Object -ReferenceObject $DownloadFiles -DifferenceObject $KeepFiles
$FileDiffs | foreach {
$copyParams = @{
'Path' = $_.InputObject.Fullname
}
$Downloadll = $copyParams.path
if ($_.SideIndicator -eq '=>')
{
Copy-Item $Downloadll -Destination $KeepFolder
}
}
试试这个
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句