PowerShellスクリプトを完成させるのに少し問題があります。画像を一時フォルダにダウンロードするプログラムがあり、1時間以内に画像ファイルが削除されます。ときどきファイルの一部を保持したいので、PowerShellスクリプトを作成して、画像ファイルを一時フォルダーから新しいフォルダーにコピーし、それらを並べ替えて必要なものを保持できるようにします。
Webを検索すると、TomsITproの「PowerShellとフォルダーを同期する方法」のスクリプトが見つかりました。このスクリプトは、2つのフォルダー間でファイルを双方向にコピーします。これを変更して一方向のみをコピーしようとすると、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:\ KeepImagesではなくd:\ scriptフォルダーにコピーされることです。私はここで何が間違っているのですか?
この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]
コメントを追加