Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Variablen oder Dateien nach Inhalt Vergleichen Powershell

Frage Entwicklung Batch & Shell

Mitglied: Dpole86

Dpole86 (Level 1) - Jetzt verbinden

02.12.2013 um 15:52 Uhr, 6454 Aufrufe, 7 Kommentare

Hallo Zusammen

Nehmen wir an ich habe 2 Dateien und lade diese in jeweils in eine Variable.

$var1

NBAPS100
NBAPS101
NBAPS102
NBAPS103
NBAPs104

$var2
NBAPS99
NBAPS100
NBAPS101
NBAPS102
NBAPS103
NBAPS104
NBAPS105


Wir kriege ich die NBAPS99 als ergebniss?

Ein Möglichkeit über Dateien würde auch gehen

Danke und grüße
Roman

Mitglied: colinardo
02.12.2013, aktualisiert um 16:04 Uhr
01.
compare -ReferenceObject $var1 -DifferenceObject $var2
und nun lese mal endlich, anstatt hier andauernd solche Grundlagenfragen zu stellen:
Bitte warten ..
Mitglied: ITvortex
02.12.2013 um 16:41 Uhr
Ich hätte ja gesagt if(...) *gg*

;)

lg ITvortex
Bitte warten ..
Mitglied: Dpole86
02.12.2013 um 17:18 Uhr
tut mir leid aber das ist für mich nicht grundlage

Ich habe eine Excel mit 2 Spalten und eine Excel mit 3 Spalten wobei die ersten Spalten verglichen werden sollen.

Je nach miserfolg soll dann aber von der dazugehörigen excel die Zeit im Dokument genommen werden.

Das alles sollte dann in eine neue Excel exportiert werden.

also wenn das Grundlage ist dann bin ich wohl im Falschen film^^
Bitte warten ..
Mitglied: colinardo
02.12.2013, aktualisiert um 18:48 Uhr
[OT]
Folgendes muss ich jetzt mal loswerden, da spreche ich einigen Leuten hier aus der Seele, die mich auch schon deswegen angeschrieben warum ich so viel Geduld mit dir habe:

Wir helfen hier gerne auch puren Anfängern(jeder fängt mal an), aber deine Posts sind vielfach so aus dem Kontext gegriffen und beinhalten viel zu wenig Hintergrund-Informationen zu deinen Vorhaben, so dass dir hier kaum einer Antworten möchte. Du bist vielleicht bei deinem Projekt im Bilde, wir hier aber eben nicht!
An der Rechtschreibung sieht man schon, wie viel Mühe du dir gibst uns dein Problem zu erläutern. Wenn du noch nicht mal dafür etwas Mühe aufbringst, und von uns dann hellseherische Fähigkeiten erwartest, bist du hier am falschen Platz. Außerdem lebt solch ein Forum vom Geben und Nehmen, wenn du dann wie in folgendem Post noch nicht mal die Zeit investierst (oder dich traust) deine Lösung in den Post zu schreiben, tust du mir leid ..
Diesen Thread brauche ich ja nun nicht erneut erwähnen, das war das dreisteste was ich je erlebt habe ...
[/OT]
Amen

ch habe eine Excel mit 2 Spalten und eine Excel mit 3 Spalten wobei die ersten Spalten verglichen werden sollen.
Von Excel war in deinem Post z.B Eingangs überhaupt keine Rede ...nur von Powershell.
Wie man von Powershell auf Excel-Dokumente via COM-Object zugreifst kannst du hier nachlesen.
Jetzt wäre die Gelegenheit, uns mal so aufzuklären das jeder versteht was du nun ganz genau mit Powershell und Excel vorhast, denn so wie du dies geschrieben hast versteht das hier keiner genau. Wir haben hier jede Menge Formatierungsmöglichkeiten im Forum womit sich das schön klar darstellen lässt.
Bitte warten ..
Mitglied: Dpole86
02.12.2013 um 19:26 Uhr
Hi Colinardo

Ich habe ja nix gegen kritik somit danke das du einfach mal sagst was sache ist.
Also in dem EnergiePosting habe ich geschrieben das mir jemand eine PN schreiben soll, weil ich ein 3 Seitiges Word dokument gemacht habe,
Dieses kann ich gerne der Person schicken die es möchte aber ins Forum posten kann ich es nicht da es Farblich keinen sinn mehr ergeben würde.

Zu meiner Rechtschreibung. Ich bin leider legasteniker. deswegen auch die "seltene" Rechtschreibschwäche.

Ja der Post der war dreist, tut mir auch leid, aber die unterstellung das ich nicht gesucht hätte hat mich aufgeregt.


und nun zum eigentlich Problem.

Ich glaube das ich entweder viel zu komplizerit denke oder es nicht machbar ist.

erinnerst du dich an den code?

01.
  
02.
$csv = Import-CSV "C:\Users\admrd\Desktop\test\bat\test.csv" -Delimiter "," $csv | ?{(get-date $_.Date) -gt (get-date).AddDays(-7)} | sort Client,Date,Time -Descending | group Client | %{$_.Group[0]} $rsync_result=$csV 
03.
$csv = Import-CSV "C:\Users\admrd\Desktop\test\bat\test.csv" -Delimiter ","   
04.
$csv | ?{(get-date $_.Date) -gt (get-date).AddDays(-7)} | sort Client,Date,Time -Descending | group Client | %{$_.Group[0]}   
05.
$rsync_result=$csv


damit bekomme ich ja heraus welche rechner sich in den letzten tagen gemeldet haben.

Ich muss aber rausbekommen, welche Rechner sich nicht in den letzten tagen gemeldet haben.

Und ganz erlich ich habe mir schon gedanken darüber gemacht deswegen auch die ganzen ansätze. Allerdings komm ich mir jeder Lösung immer wieder zu einer Sackgasse.

Ich habe auch versucht das AD auszulesen nach den Computernamen und diese in eine Variable zu speichern. Ich komm schon bei der Verbindund irgendwie nicht weiter.
Diese WVariable hätte ich dann verglichen mit den Daten aus der CSV... nur weis ich dann nicht wie ich das Datum mit rein bekomme, was aber gar nicht geht.

Keine ahnugn wie das alles gehen soll.
Bitte warten ..
Mitglied: colinardo
02.12.2013, aktualisiert um 20:20 Uhr
Das war doch mal eine klare Aussage.
Also hier an einem Beispiel erläutert:
Die Variable $clientliste sei jetzt mal unsere Liste in der alle Client-Rechner die Ihr habt, aufgeführt sind.
Die Variable $clientlog wäre hier nun unsere Liste mit den Log-Einträgen.
Habe beide Variablen in dem Beispiel einfach nur mal manuell mit zwei Beispieldaten gefüllt.

D.h. nun das in unserem Log hier zwei Rechner aufgeführt sind NBAPS99 und NBAPS101. In unserer Rechner-Liste haben wir aber noch den NBAPS100 welcher aber nicht im LOG auftaucht; also ist dies unser Kandidat welchen wir finden müssen. Diesen Vergleich führen wir mit einem Compare-Object durch. Diesem übergeben wir als ReferenceObject unsere $clientlog-Variable und als DifferenceObject unsere $clientliste. Kriterium ist hier die Property Client. Das Konstrukt schicken wir dann mit der Pipe an ein Where-Object wo wir die Unterschiede untersuchen, d.h. wir filtern die Computer heraus welche nur in der $clientliste vorkommen. Das sind dann unsere Clients die sich in der letzten Zeit nicht gemeldet haben.
01.
$clientliste = @() 
02.
$clientliste += New-Object PSObject -Property @{"Client"="NBAPS99"} 
03.
$clientliste += New-Object PSObject -Property @{"Client"="NBAPS100"} 
04.
 
05.
$clientlog = @() 
06.
$clientlog += New-Object PSObject -Property @{"Client"="NBAPS99";"Date"="01.10.2013";"Time"="10:17"} 
07.
$clientlog += New-Object PSObject -Property @{"Client"="NBAPS101";"Date"="10.10.2012";"Time"="22:17"} 
08.
 
09.
Compare-Object -ReferenceObject $clientlog -DifferenceObject $clientliste -Property Client -PassThru | ?{$_.Sideindicator -eq "=>"}| select Client
Du musst dir halt mal die Ausgaben des Compare-Object ansehen um zu verstehen was es macht. Ich empfehle Dir mit der Powershell ISE zu arbeiten, da hast du ab der Powershell-Version 3.0 ein Syntax-Highlighting und die Shell zeigt dir die verfügbaren Parameter zu dem jeweiligen Befehl an den du eingibst.
Du machst wahrscheinlich zu viel auf einmal, mit der Powershell musst du Schritt für Schritt arbeiten und dir zwischendurch auch mal die Zwischenausgaben ansehen. Nur so lernt man das ganze besser kennen.

Grüße Uwe
Bitte warten ..
Mitglied: Dpole86
02.12.2013 um 20:17 Uhr
Hi Uwe und Danke dir

Ich werde das Morgen testen und mich wieder melden

Danke dir
Bitte warten ..
Neuester Wissensbeitrag
Internet

Unbemerkt - Telekom Netzumschaltung!

(1)

Erfahrungsbericht von ashnod zum Thema Internet ...

Ähnliche Inhalte
Batch & Shell
Powershell Script um Inhalt von Dateien zu vergleichen (14)

Frage von zamsi7 zum Thema Batch & Shell ...

Batch & Shell
gelöst Powershell - Dateien aus verschiedenen Arrays - Attribute vergleichen (5)

Frage von Giffas zum Thema Batch & Shell ...

Batch & Shell
gelöst 2 CSV Dateien per Powershell vergleichen (2)

Frage von Berlin62 zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Switche und Hubs
Trunk für 2xCisco Switch. Wo liegt der Fehler? (15)

Frage von JayyyH zum Thema Switche und Hubs ...

DSL, VDSL
DSL-Signal bewerten (13)

Frage von SarekHL zum Thema DSL, VDSL ...

Backup
Clients als Server missbrauchen? (10)

Frage von 1410640014 zum Thema Backup ...