2013-01-14 35 views
5

Ho il codice seguente che confronta le due cartelle e restituisce i file in modo diverso rispetto a ciascuna cartella, esiste un modo per ottenere l'output dell'intero file/percorso della cartella per i file nelle sottocartelle?PowerShell - Confronta cartella Contenuto

Acclamazioni

# Create varaibles to store folder paths - pass to Strings... 
param([string]$argFolderA,[string]$argFolderB) 

# Set variables for folder 
$FolderA = Get-ChildItem -Recurse -path $argFolderA 
$FolderB = Get-ChildItem -Recurse -path $argFolderB 

# Compare the contents and output the files different within each folder. 
Compare-Object -ReferenceObject $FolderA -DifferenceObject $FolderB >> C:\CmpOut.txt 

risposta

3

Prova questo:

Compare-Object -ReferenceObject $FolderA -DifferenceObject $FolderB | 
select @{n="InputObject";e={ 
    if ($_.inputobject -is [system.io.directoryinfo]) 
    {([system.io.DirectoryInfo]$_.InputObject).fullname} 
     else 
     { ([system.io.FileInfo]$_.InputObject).fullname}}},SideIndicator 
5

utilizzare il flag passante del comapre-Object in questo modo:

Compare-Object -ReferenceObject $FolderA -DifferenceObject $FolderB -Passthru | % {$_.FullName} >> C:\CmpOut.txt 
+0

In questo modo SideIndicator è perduto. –

1

tubo attraverso ForEach {$_.InputObject.FullName}.

Ti piace questa:

Compare-Object -ReferenceObject $FolderA -DifferenceObject $FolderB | ForEach {$_.InputObject.FullName} 
+0

In questo modo, SideIndicator viene perso. –

+1

Non è perso ... è disponibile tramite '$ _. SideIndicator'. – aphoria

Problemi correlati