7. Oktober 2015 11:32
		
			
			Falls Mergeordner wie ORIGINAL, MODIFIED usw. überflüssige Dateien enthalten, kann man diese mit diesen Funktionen entrümpeln.
Ein Ordner gibt dabei die benötigten Objekte vor (im Beispiel 1 der ORIGINAL), der andere (MODIFIED) wird durchlaufen und Dateien, die keinen Namensvetter im anderen Ordner haben, werden gelöscht.
Anwendungsbeispiel: Ordner MODIFIED enthält einen kompletten Objektexport, ORIGINAL nur die zu mergenden Objekte. Nach Anwendung des Skripts blieben auch diese nur noch im MODIFIED-Ordner über, der restliche Ballast ist dann entfernt.   

 Vor dem Aufruf der jeweiligen Funktion in der PowerShell in den Pfad wechseln, der die Mergeordner enthält.
- Code:
- function DeleteNonMatchingFilesInMODIFIED
 {
 $files = Get-ChildItem ".\MODIFIED"
 
 for ($i=0; $i -lt $files.Count; $i++)
 {
 $FullFileName = $files[$i].FullName
 $FileName = Split-path $files[$i] -Leaf
 
 $ORIGFile = ".\ORIGINAL\$fileName"
 if (-not(Test-Path $ORIGFile))
 {Remove-Item $Fullfilename -force -Verbose}
 
 }
 }
MergeOrdnerabgleichen.png
Beispiel 2: Hier wird ORIGINAL durchlaufen und dort die im Ordner MODIFIED nicht vorhandenen Dateinamen gelöscht.
- Code:
- function DeleteNonMatchingFilesInORIGINAL
 {
 $files = Get-ChildItem ".\ORIGINAL"
 
 for ($i=0; $i -lt $files.Count; $i++)
 {
 $FullFileName = $files[$i].FullName
 $FileName = Split-path $files[$i] -Leaf
 
 $MODIFile = ".\MODIFIED\$fileName"
 if (-not(Test-Path $MODIFile))
 {Remove-Item $Fullfilename -force -Verbose}
 
 }
 }
Beispiel 3: Hier wird MODIFIED durchlaufen und dort die im Ordner TARGET nicht vorhandenen Dateinamen gelöscht.
- Code:
- function DeleteNonMatchingFilesInMODIFIEDComparedWithTARGET
 {
 $files = Get-ChildItem ".\MODIFIED"
 
 for ($i=0; $i -lt $files.Count; $i++)
 {
 $FullFileName = $files[$i].FullName
 $FileName = Split-path $files[$i] -Leaf
 
 $TARGFile = ".\TARGET\$fileName"
 if (-not(Test-Path $TARGFile))
 {Remove-Item $Fullfilename -force -Verbose}
 
 }
 }
Dazu ein kleiner Tipp am Rande:
Den aktuellen Powershell-Pfad als Explorerfenster öffnen geht am schnellsten über den Alias 
ii des Cmdlets 
Invoke-Item, gefolgt von Leerzeichen und Punkt.
- Code:
- ii .
Für andere Ordner den Punkt durch den benötigten Pfad ersetzen.
- Code:
- ii c:\temp
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.