passiert, ich versuche, dieses Skript zu bekommen, ein Unterverzeichnis zu tun vergleichen auf Dateinamen basierte und dann nur Dateien, die 30 Tage oder jünger sind. Die Syntax scheint akzeptabel, aber die HandbrakeCLI-Codierung wird nicht gestartet.Powershell-Skript läuft aber nichts
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'"
}
Vielen Dank Joey. – Darkmalik88
Es scheint, die für jedes Objekt Schleife nicht die $ Ergebnisse Variable bevölkern. – Darkmalik88
Wie schreibe ich $ results = @ (compare-object $ s1 $ d1) | Where-Object {$ _. Name -ne $ _. Name} So vergleicht es die Dateinamen von Verzeichnissen und ingnores Übereinstimmungen. Passiert nur nicht übereinstimmende Dateinamen zur Handbremse? – Darkmalik88