Jump to content

Verschiedene Filetypen vergleichen auf verschiedenen Laufwerken


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Hallo Gemeinde

 

Kurz zur Info. Ich beschäftige mich erst seit 10 Tagen mit der Powershell steh also noch richtig am Anfang also bitte vorweg seit mir nicht böse wenn ich vielleicht "dumme" fragen stelle.

 

Danke schon mal im Voraus für eure Hilfe.

 

Also folgendes

 

Ich soll ein Script schreiben welches auf dem Ordner der auf C liegt alle 3 Dateitypen ( *.txt *.doc *.pps) auflistet

 

dann soll das Script einen Vergleich auf ein Netzlaufwerk machen und alle vorher gefunden 3 Dateitypen abgleichen.

Wenn das file nicht vorhanden ist soll es dort hinkopiert werden.

Wenn es vorhanden ist soll er einfach weiter machen.

 

Alles klar soweit ?

 

Okay jetzt zu meiner Lösung

 

hab mir gedacht ....

 

Ich definiere mir 2 Variablen.

 

$a = dir -Path C:\Benutzer\user1\daten

# somit habe ich ja die Daten nu in der Variablen ..... Zwischen Frage reicht mir das so ? weil wenn ich die $a ausgebe sehe ich die Auflistungen

 

2.tens haben ich mir die Variable $b definiert.

$b = dir -Path \\server01\user1\daten2

 

jetzt besitze ich 2 Variablen ... die Inhalte von Ordner anzeigen.

 

Aber wie löse ich jetzt am besten den Vergleich + Kopier Vorgang ?

 

Hat wer eine Idee oder einen Denkanstoß für mich

 

 

Danke nochmals für eure Hilfe

 

Lg Schreckinger :D

Link zu diesem Kommentar
hi

 

Hier mal ein Beispiel was dich auf die richtig Spur führen könnte.

 

$ordner1 = Get-ChildItem c:\ordner1
$ordner2 = Get-ChildItem c:\ordner2
foreach ($datei1 in $ordner1)
{
write-host $datei1.name
foreach($datei2 in $ordner2)
{
 write-host $datei2.name
}
}

 

okay i probiere mal das zu erklären damit wir sehn ob ich das auch komplett verstanden habe

 

also

 

1.) als erster definierst du dir 2 Variablen mit den Ornder inhalten

2.) foreach schleife ( check die Variable $datei1 im $ordner1)

#Frage aber wo ist die $datei1 defniert ?

#Erklärung für die erste Schleife: es wird nach geschaut ob die Daten im Ornder1 sind

3.) dann wird das gefunden mit Write-Host ausgeben

also alle dateien die sich im Ordner befinden, aber noch keine einschränkung auf die 3 Filetypen ? Ist das soweit richtig

4.)2 foreach schleife

# gleiche Frage wie vorher wo wird die $datei2 definiert ?

# Dateien werden im 2 Ordner verglichen wiederum ohne Filetyp abgleich

5.) Ausgabe der Dateien im Ordner 2

 

Ist das soweit richtig ?

 

Danke nochmals

Link zu diesem Kommentar

1.:

Ich würde auch bei dem Beispiel nicht die Daten in eine Variable schreiben, sondern das ganze in der Schleife einbauen:

 

Statt:

$ordner1 = Get-ChildItem c:\ordner1

foreach ($datei1 in $ordner1)

...

folgendes:

foreach ($datei1 in (Get-ChildItem c:\ordner1))

...

 

Spart einen Durchlauf.

 

2.:

#Frage aber wo ist die $datei1 defniert ?

 

Das wird im Foreach definiert.

Foreach ist die Kurzform von Foreach-Object.

D.h. im Array $ordner1 wird alles in den Klammern ausgeführt und der aktuelle Wert ist in der Variable $datei1.

 

3.:

Wenn die Ordnerstruktur gleich ist muss nicht jede Datei aus der Quelle mit jeder Datei aus dem Ziel vergleichen werden.

Einfach statt dem 2. Foreach folgendes (exemplarisch):

 

test-path $datei1.FullName.Replace('c:\ordner1','c:\ordner2')

Link zu diesem Kommentar

Okay soweit hab ich verstanden mit der Foreach Schleife.

 

Aber was ich noch immer nicht ganz verstehe woher nehme die Befehle für die Foreach Schleife.

 

Sprich wo begebe ich ihm an das er zum Beispiel den vergleich startet und den kopier vorgang macht.

 

Gibt es da so eine Art Datenbank wo die einzeln Befehle drinnen stehen die eine Foreach Schleife verarbeiten kann ?

 

Danke nochmals

Link zu diesem Kommentar

IN der Schleife kannst du alles machen. Dort kannst du vergleichen und kopieren.

 

Was hast du denn bisher mit Powershell schon gelernt?

Was genau willst du vergleichen? Dateiname? Größe? Inhalt?

 

Fang erst mal mit einer Datei an. Gleiche eine Lokale Datei mit einer auf dem Server und kopiere die ggf.

Wenn du das hast kannst du deine Schleife drum herum bauen.

Link zu diesem Kommentar

Hallo Dukel :)

 

Wie gesagt beschäftige ich mich seit ca 10 Tagen mit der Powershell.

Brauche die Scripts für meinen neuen Arbeitgeber.

 

Habe einen 5 Tägigen Grundkurs hinter mir und seit letzten Freitag spiele ich mich herum mit der Powershell.

 

Heute hab ich meinen ersten Auftrag bekommen.

 

Aber ich versteh es halt noch nicht so ganz. Woher man die ganzen Befehle nimmt ? Deswegen meine Frage ob es eine Liste mit Befehlen für die Foreach schleife gibt ?

 

Also ich möchte einfach die Daten per Filetyp & per Name vergleichen.

Ist die selbe datei oben das soll es so bleiben.

Fehlt eine Datei soll er sie von C auf den Share Kopieren.

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...