Jump to content

Script zum Verschieben von Ordnern mit Inhalt


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

Empfohlene Beiträge

Geschrieben (bearbeitet)

Hi,

 

ich möchte ein powershell script basteln, welches mir Ordner mit einem gewissen pattern in zugewiesene Ordner verschiebt.

 

Ordner, die mit 200.... anfangen, sollen in den Ordner 200.

Ordner, die mit 201..... anfangen sollen in 201 usw.

 

Dass man mit Get-ChildItem -path F:\padaten-calink\production\Freigabe-DXF -recurse -filter "200????_???" die gewünschten Ordner aufgelistet bekommt, habe ich bereits raus gefunden.

 

kann ich irgendwie zu jeder zeile, die mir das Get-ChildItem ausgibt, einen Befehl anhängen, der mir diese Zeile in den anderen Ordner verschiebt?

 

Da ich mit Powershell noch nicht so viel am Hut habe, frag ich einfach mal hier. Vielleicht hat ja jemand lust zu helfen! :grins2:

 

achja, gefunden hab ich bereits das hier:

https://www.windowspro.de/script/copy-item-move-item-dateien-kopieren-verschieben-powershell

 

allerdings werde ich daraus nicht so ganz schlau.

gci *.ini | %{if(-not(Test-Path (".\config_bak\" + $_.name))){copy $_ .\config_bak -passthru|select name}}

Hier muss man die Quelldateien mit Hilfe von Get-ChildItem erfassen und diese Liste einer Schleife übergeben, in der Test-Path jede einzelne Datei auf ihre Existenz prüft. Nur wenn sie nicht vorhanden ist, kommt der Kopierbefehl zum Zug, und zwar für jede Datei separat.

 

bearbeitet von Gu4rdi4n
Geschrieben (bearbeitet)
vor 26 Minuten schrieb Gu4rdi4n:
Da ich mit Powershell noch nicht so viel am Hut habe,

Wie schade  ... ein guter Startpunkt ist der kostenlose VideoKurs  in der Microsoft Virtual Academy - Getting Started with Microsoft Powershell.

 

Vernünftig formatiert und die Aliasse ausgeschrieben sieht der Code so aus:

Get-ChildItem *.ini | 
    ForEach-Object {
        if (-not(Test-Path (".\config_bak\" + $_.name))) {
            Copy-Item $_ .\config_bak -passthru | Select-Object -Property name
        }
    }

 

bearbeitet von BOfH_666
  • Danke 1
Geschrieben

Hi,

 

ja deswegen möchte ich mich immer mehr damit beschäftigen! :)

Ist ja ein skill der echten Mehrwert bringt.

 

Danke für die Reformatierung!

 

Habe jetzt eine andere Lösung noch gefunden, die mir besser gefällt.

 

Get-ChildItem -Path "C:\Users\user\TestOrdner Powershell" -filter "222???????????-?????(?)" |Move-Item -Destination "C:\Users\user\TestOrdner Powershell\222"

 

Hast du hier vielleicht noch Anregungen?

 

Ist das so sinnvoller als mit ner schleife?

Kompakter ist es auf jedenfall schonmal

Geschrieben (bearbeitet)
vor 9 Minuten schrieb Gu4rdi4n:

Ist das so sinnvoller als mit ner schleife?

Das kommt auf Deine Anforderungen und auf Deine Fähigkeiten an.  ;-)  Aber wenn das den Job erstmal erledigt - super. Ich würde aber dringend empfehlen, sich erstmal die Grundlagen draufzuschaffen. Der Videokurs in der MVA dauert nur ca 8 - 10 Stunden und bildet schon mal eine solide Grundlage. 

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

Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde dich hier an.

Jetzt anmelden
×
×
  • Neu erstellen...