powershell script für vergleicher zweier Excel-dateien?

Hi Leutz,

ich brauche hilfe bei einem Powershell-Script das mir 2 riesige(20+ Mappen in den Dateien) Exceldateien inhaltlich vergleicht und mir dann möglichst die nicht übereinstimmenden Zellen(mit jeweiliger Arbeitsmappe) ausgibt und das am besten in eine separate Excel/CSV-Datei schreibt, damit ich schauen kann welcher der Einträge aktueller ist.

bisher sieht mein script so aus:

# Pfade zu den zu vergleichenden Dateien definieren

$PfadDatei1 = "X:\xyz\IP-Adressen.xlsx"

$PfadDatei2 = "X:\xyz\IP-Adressen2.xlsx"

# Excelldateien in Powershellobjekte laden

$ExcelInhalt1 = get-content -Path $PfadDatei1

$ExcelInhalt2 = get-content -Path $PfadDatei2

# Vergleichen der Excell-Inhalte

$Unterschiede = Compare-Object -ReferenceObject $PfadDatei1 -DifferenceObject $PfadDatei2

# Prüfen ob Unterschiede gefunden wurden und Ausgabe derer

if ($Unterschiede.count -eq 0)

{

   Write-Host "Keine Unterschiede gefunden"

}

else

{

   Write-Host "Unterschiede gefunden"

   $Unterschiede | Export-Csv -Path "X:\xyz\Documents\Ergebnis.csv" -NoTypeInformation -Force

}

Das Script vergleicht die Dateien zwar, gibt mir aber total kryptische Ergebnisse aus. Also als würde ich ne C++ Datei verschlüsselt im Editor öffnen

Hat jemand ne Idee was ich da ändern muss damit der mir das so ausgibt, dass ich am besten den Namen der Arbeitsmappe und die Zelle ausgegeben bekomme?

danke schon mal

Microsoft Excel, programmieren, Script, PowerShell, Office 365
Powershell remote Script zum Client wird ausgeführt aber ohne Fehlermeldung und ohne starten der Anwendung?

Hallo, ich versuche vom Host per Remote auf eine VM mit Remote eine Anwendung zu starten und bekomme auch die Rückmeldung das der Prozess gestartet ist, (Es wird auch kurz ein PowerShell Fenster angezeigt und die Anwendung startet auch irgendwann im Hintergrund) aber egal was ich versuche die Anwendung lässt sich nicht normal starten. Der ps Befehl an sich funktioniert an sich (etwas abgeändert) einwandfrei auf dem Client. Das komische ist ja das einfache Sachen wie eine Txt Datei erstellen ohne Probleme funktionieren. Ich hab in der vm schon alles mögliche probiert auch ohne Firewall gleiches Ergebnis. openai hat auch schon aufgegeben, anscheinend soll laut meinem Kollegen sowas vorher ohne Probleme funktioniert haben, aber an den win Updates kanns nicht liegen da die vm frisch installiert ist. Chrome wurde nur als Test mit eingefügt


$chromeScriptBlock = {

  Start-Process -FilePath "C:\Program Files\Google\Chrome\Application\chrome.exe" -WindowStyle Normal

}

$padScriptBlock = {

  $padExePath = "C:\Program Files (x86)\Power Automate Desktop\PAD.Console.Host.exe"

  $flowUrl = "XXXXr"

  Start-Process -FilePath $padExePath -ArgumentList $flowUrl -WindowStyle Normal

}

# Für Chrome

C:\Users\Administrator\Desktop\PSTools\psexec.exe \\192.168.56.10 -i 1 -u XX powershell -ArgumentList "-NoProfile -ExecutionPolicy Bypass -Command & {$chromeScriptBlock}"

# Für Power Automate Desktop

C:\Users\Administrator\Desktop\PSTools\psexec.exe \\192.168.56.10 -i 1 -u XX -p XXX-d powershell -ArgumentList "-NoProfile -ExecutionPolicy Bypass -Command & {$padScriptBlock}"

Server, Script, PowerShell, Remote Desktop, Windows 10, windows server 2019
Funktionierender regulärer Ausdruck (CMD) um aus einer Textdatei bestimmte Zeilen mit " zu entfernen?

Eigentlich könnte man ja meinen, dass dieses Problem recht leicht zu lösen sein müsste. 

Aber aus irgendwelchen Gründen ist es das nicht, da " irgendwie für alles einen Sonderstatus hat. 

Also was ich gerne wissen würde: 

 Wie bzw. mit welchem regulären Ausdruck kann man (z.b mit einem Grepbefehl?) alle Zeilen suchen, die mit einem " anfangen ohne, dass dies zu unerwarteten Verhalten führt und z.b der Pfad nicht mehr gefunden wird bzw. keine Ausgabedatei erzeugt wird?  

 Ich hab es jetzt bereits mit dutzenden verschiedensten Varianten versucht: grep '^"' grep '^\"' grep -E '^\"' grep '^\".*' 

und noch X weiteren Variationen, aber entweder werden einfach nur alle Zeilen ausgegeben, die irgendwo im Text ein " enthalten oder es gibt Probleme mit der Erzeugung der Ausgabedatei.

Wichtig wäre in diesem Fall jedoch, dass nur der Anfang (erste Charakter) einer Zeile überprüft bzw. gematched werden soll. Scheinbar soll dies bei Grep ja mit ^ möglich sein und ein Escapen der " mit \. Funktioniert aber alles nicht!

GPT hab ich auch schon gefragt, aber der Bot ist mit der Frage komplett überfordert und gibt nur hanebüchenen Mist aus, der entweder nicht funktioniert oder sehr langsam ist (z.b Ansätze mit Powershell)

Also bevor ich jetzt noch meinen kompletten PC / CPU zu Schrott fahre: Gibt es eine effektive und schnelle Möglichkeit wie man diese Operation aus einer Textdatei alle Zeilen ohne " am Anfang = delete (möglichst mit verfügbaren Onboardmitteln) ausführen kann und falls ja wie?  

Im Idealfall sollten die Zeilen, die nicht gematched werden auch einfach direkt aus der Datei herausgelöscht werden können, anstatt jedesmal den kompletten Inhalt zu kopieren.

Irgendein Tipp?

PC, IT, programmieren, Batch, Batchprogrammierung, cmd, Code, Programmiersprache, Textbearbeitung, PowerShell, Regulärer Ausdruck, Windows 10, CMD Befehl

Meistgelesene Beiträge zum Thema PowerShell