Compare (Vergleichen): Unterschied zwischen den Versionen

Aus Wiki-WebPerfect
Wechseln zu: Navigation, Suche
(Die Seite wurde neu angelegt: „<source lang="powershell"> $File1 = Get-Content -Path C:\temp\String1.txt $File2 = Get-Content -Path C:\temp\String2.txt Compare-Object -ReferenceObject $File…“)
 
Zeile 1: Zeile 1:
 +
== Einfache Version mit zwei Dateien ==
 
<source lang="powershell">
 
<source lang="powershell">
 
$File1 = Get-Content -Path C:\temp\String1.txt
 
$File1 = Get-Content -Path C:\temp\String1.txt
Zeile 7: Zeile 8:
  
  
 +
== Erweiterte Version mit zwei temporären Dateien ==
 +
<source lang="powershell">
 +
# Workspace: Speicherort für temporäre Files
 +
$Workspace = "C:\temp"
  
 +
# String1/2 die verglichen werden sollen. (ersetzen!)
 +
$String1 = "
 +
Hallo1
 +
HAllo3
 +
Hallo2
 +
"
 +
 +
$String2 = "
 +
Hallo123
 +
Hallo2
 +
HAllo1
 +
"
 +
 +
 +
 +
# Temporäre Files
 +
    New-Item -Path "$Workspace\File1.txt" -ItemType file -Force
 +
    New-Item -Path "$Workspace\File2.txt" -ItemType file -Force
 +
 +
# Hinzufügen der Strings in die Files
 +
    Add-Content -Value $String1 -Path "$Workspace\File1.txt"
 +
    Add-Content -Value $String2 -Path "$Workspace\File2.txt"
 +
 +
# Vergleich der zwei Files
 +
    $MissingInFile1 = Compare-Object -ReferenceObject (Get-Content -Path "$Workspace\File1.txt") -DifferenceObject (Get-Content -Path "$Workspace\File2.txt") | Where {$_.SideIndicator -eq '=>'} | Sort-Object -Property InputObject
 +
    $MissingInFile2 = Compare-Object -ReferenceObject (Get-Content -Path "$Workspace\File1.txt") -DifferenceObject (Get-Content -Path "$Workspace\File2.txt") | Where {$_.SideIndicator -eq '<='} | Sort-Object -Property InputObject
 +
 +
# Alle fehlende Werte in dem Sring1/File1
 +
    $a = @{Label="InputObject"; Expression={$_.InputObject}}, `
 +
    @{Label="Test"; Expression={$MissingInString1}}
 +
 +
    $MissingInString1 = "Fehlt in dem String1/File1"
 +
    $MissingInFile1 | Format-Table $a
 +
 +
# Alle fehlende Werte in dem Sring2/File2
 +
    $a = @{Label="InputObject"; Expression={$_.InputObject}}, `
 +
    @{Label="Test"; Expression={$MissingInString2}}
 +
 +
    $MissingInString2 = "Fehlt in dem String2/File2"
 +
    $MissingInFile2 | Format-Table $a
 +
 +
# Remove der temporären Files
 +
    Remove-Item -Path "$Workspace\File1.txt"
 +
    Remove-Item -Path "$Workspace\File2.txt"
 +
</source>
  
  
 
[[Kategorie:PowerShell]]
 
[[Kategorie:PowerShell]]

Version vom 25. Juli 2017, 10:38 Uhr

Einfache Version mit zwei Dateien

$File1 = Get-Content -Path C:\temp\String1.txt
$File2 = Get-Content -Path C:\temp\String2.txt
 
Compare-Object -ReferenceObject $File1 -DifferenceObject $File2 | Sort-Object -Property InputObject


Erweiterte Version mit zwei temporären Dateien

# Workspace: Speicherort für temporäre Files
$Workspace = "C:\temp"
 
# String1/2 die verglichen werden sollen. (ersetzen!)
$String1 = "
Hallo1
HAllo3
Hallo2
"
 
$String2 = "
Hallo123
Hallo2
HAllo1
"
 
 
 
# Temporäre Files
    New-Item -Path "$Workspace\File1.txt" -ItemType file -Force
    New-Item -Path "$Workspace\File2.txt" -ItemType file -Force
 
# Hinzufügen der Strings in die Files
    Add-Content -Value $String1 -Path "$Workspace\File1.txt" 
    Add-Content -Value $String2 -Path "$Workspace\File2.txt" 
 
# Vergleich der zwei Files
    $MissingInFile1 = Compare-Object -ReferenceObject (Get-Content -Path "$Workspace\File1.txt") -DifferenceObject (Get-Content -Path "$Workspace\File2.txt") | Where {$_.SideIndicator -eq '=>'} | Sort-Object -Property InputObject
    $MissingInFile2 = Compare-Object -ReferenceObject (Get-Content -Path "$Workspace\File1.txt") -DifferenceObject (Get-Content -Path "$Workspace\File2.txt") | Where {$_.SideIndicator -eq '<='} | Sort-Object -Property InputObject
 
# Alle fehlende Werte in dem Sring1/File1
    $a = @{Label="InputObject"; Expression={$_.InputObject}}, `
    @{Label="Test"; Expression={$MissingInString1}}
 
    $MissingInString1 = "Fehlt in dem String1/File1"
    $MissingInFile1 | Format-Table $a
 
# Alle fehlende Werte in dem Sring2/File2
    $a = @{Label="InputObject"; Expression={$_.InputObject}}, `
    @{Label="Test"; Expression={$MissingInString2}}
 
    $MissingInString2 = "Fehlt in dem String2/File2"
    $MissingInFile2 | Format-Table $a
 
# Remove der temporären Files
    Remove-Item -Path "$Workspace\File1.txt"
    Remove-Item -Path "$Workspace\File2.txt"