Quantcast
Channel: Windows PowerShell Forum
Viewing all articles
Browse latest Browse all 2314

Nur Ordner verarbeiten, die eine bestimmte Anzahl von Dateien beinhalten

$
0
0

Hallo,

mit einem Powershellscript (Powershell3) durchsuche ich einen Speicher nach Ordnern mit bestimmten Namen, in diesen Odnern benenne ich bestimmte Unterordner um und verschiebe selbige an einen anderen Ort. Das klappt alles soweit sehr gut, allerdings versuche ich verzweifelt dem Script beizubringen, nur Ordner umzubenennen und zu verschieben, die eine bestimmte Anzahl von Dateien (in diesem Fall 2 oder mehr) beinhalten. Hier mein aktueller Code:

$myjob = [Powershell]::Create().AddScript({ # variablen definieren $AvidNr = 1

$quellpfad = "\\TTVUNITY1\TTVUnity1\Unity1_Avid_Projekte_und_MediaFiles\Unity1_Avid_Projekte_und_MediaFiles" $quellpfadtiefer = "\Avid MediaFiles\MXF" $folders = Get-ChildItem $quellpfad -Recurse | Where {$_.PSIsContainer -and $_.Name -match "Avid${AvidNr}MediaFiles"} # ordner umbenennen und verschieben foreach ($folder in $folders){

## hier müsste man doch vermutlich irgendwie einschränken können, dass die Shell nur $folder nimmt, die mehr als 2 Dateien beinhalten - nur WIE? ##

$cnt=0 Get-ChildItem "$($folder.FullName)$quellpfadtiefer" -Directory | Where {$_.PSIsContainer} | Foreach-Object {Rename-Item $_.FullName -NewName ((get-date -Format "yyyyMMddhhmmss")+$AvidNr+$AvidNr+$AvidNr+$AvidNr+$cnt++) -passthru} | Move-Item -Destination "$($folder.parent.FullName)$quellpfadtiefer" } }) $myjob.BeginInvoke()| out-null while($myjob.InvocationStateInfo.State -eq "Running"){ Write-Progress -Activity "Ordnerverarbeitung" -Status "Bitte warten Umbenennung läuft ..." } write-host "Vorgang abgeschlossen"

Hat jemand einen Tipp?

Viele Grüße





Viewing all articles
Browse latest Browse all 2314


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>