-3
私は、このスクリプトを使用してファイル名に基づいてサブディレクトリ比較を行い、その後30日以内のファイルのみを取得しようとしています。構文は受け入れられるようですが、HandbrakeCLIエンコーディングは起動しません。Powershellスクリプトは実行されますが、何も起こりません。
Clear screen
$SourceDir = "\\netshare\testing\Source\*.MP4"
$DestinationDir = "\\netshare\testing\Completed_mp4\*.MP4"
$s1 = get-childitem -path $SourceDir -Recurse -Force | Where-Object {$_.LastWriteTime -gt (Get-Date).addDays(-30)}
$d1 = get-childitem -path $DestinationDir -Recurse
$results = @(compare-object $s1 $d1) | Where-Object {$_.Name -ne $_.Name}
$quantity = $results | measure
$Filecount = $quantity
$Process = 0;
foreach ($result in $results){
Write-Host -----------------------------------------------------------------
Write-Host Handbrake Batch Encoding
$Process++;
$results = $file.DirectoryName + "\" + $file.BaseName + ".MP4";
$progress = ($Process/$filecount) * 100
$progress = [Math]::Round($progress,2)
#Clear-Host
Write-Host "Processing - $results"
Write-Host "File $Process of $Filecount - $progress%"
Write-Host -------------------------------------------------------------------------------
$s1 = get-childitem -path $SourceDir -Recurse -Force | Where-Object {$_.LastWriteTime -gt (Get-Date).addDays(-30)}
$d1 = get-childitem -path $DestinationDir -Recurse
Start-Process "C:\Users\Downloads\HandBrakeCLI-1.0.1-win-x86_64.exe -ArgumentList -q 25 -i '$results' -o '$d1'"
}
非常にジョーイありがとうございます。 – Darkmalik88
各オブジェクトループが$ results変数に値を設定していないようです。 – Darkmalik88
$ results = @(比較オブジェクト$ s1 $ d1)を書き直すにはどうすればいいですか? Where-Object {$ _。Name -ne $ _。Name}これは両方のディレクトリのファイル名を比較し、一致するものを比較します。ハンドブレーキにファイル名が一致しないパッセージだけ? – Darkmalik88