Powershell Script Datei Kopieren
Moin ich bin gerade dabei ein Powershell Script zusammen zu stellen und brauche sowas wie Fortschrittbalken und ggf weiter Verbesserungen um den Handling zu erleichtern
Der sinn ist folgende der Ordner und die Dateien werden von x nach y kopiert und danach in den lokalen Netzwerk geschickt wo sie sich auf einen Nas gespeichert werden.
Brauche Feedback und Verbesserungsvorschläge
MfG
evgnbz
$from='woher'
$into='wohin'
$structure='sollzustand'
$nas='serveraresse'
for(;;) {
if ($into=!$structure) #gibt es ein unterschied zw ist und sollzustand
{
try {
#datei wird kopiert
Copy-Item -Filter ZB *.pdf -Path $from -Recurse -Destination $into
}
catch {
#sonsten nichts (vorerst)
echo "warnung"
}
}
elseif {
#bei erfolgreichen sicherung auf ordner wird auf netzwerk speicher kopiert
echo "daten werden auf den server übertragen"
try {
#datei wird kopiert
Copy-Item -Filter *.pdf -Path $from -Recurse -Destination $nas
}
catch {#sonsten nichts (vorerst)
echo "warnung"}
}
}
Der sinn ist folgende der Ordner und die Dateien werden von x nach y kopiert und danach in den lokalen Netzwerk geschickt wo sie sich auf einen Nas gespeichert werden.
Brauche Feedback und Verbesserungsvorschläge
MfG
evgnbz
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 4747791830
Url: https://administrator.de/contentid/4747791830
Ausgedruckt am: 22.11.2024 um 02:11 Uhr
5 Kommentare
Neuester Kommentar
https://www.powershellgallery.com/packages/Copy-ItemWithProgress/1.0/Con ...
15 Sekunden mit Google "progessbar file copy powershell" ...
Lösung im Link habe nicht getestet, kann sein, dass es nicht funktioniert.
15 Sekunden mit Google "progessbar file copy powershell" ...
Lösung im Link habe nicht getestet, kann sein, dass es nicht funktioniert.
Zitat von @evgnbz:
- für ist die for-schleife?
soweit ichs verstanden habe kopiert Copy-Item nur eine Datei deswegen habe ich eine Dauerschleife erschaffen,
- für ist die for-schleife?
soweit ichs verstanden habe kopiert Copy-Item nur eine Datei deswegen habe ich eine Dauerschleife erschaffen,
Richtig, darum braucht man in jedem Fall eine for Schleife. Und das sehr, sehr oft. Bzw. sprechen wir bei PS ja von Objekten und man kann die Befehle ja hintereinander schreiben.
% -> ForEach-Object
Vlt. schon mal gesehen. gci xxxx | % ( .... )
Deine Schleife als Idee ist nicht verkehrt. Und sogar als Grundgedanke richtig. Aber man macht es sich damit zu schwer, arbeitet gegen PS.
Get-Alias <- gibt dir alle Kürzel wieder, die du auch hier bei den Kollegen im Forum immer wieder findest.
- Bist du sicher, dass du try...catch verstanden hast?
ich dachte dass es sowas wie if else ist
ich dachte dass es sowas wie if else ist
Vom Grundgedanken sowas ähnliches wie if-else.
https://www.windowspro.de/script/fehlerbehandlung-powershell-erroraction ...
Du kennst ja die netten roten Fehlermeldungen. Mitunter macht unser Script dann gar nichts mehr. Da wir nicht immer daneben stehen wollen kann man mit catch Fehlerbehandlung abbilden. Das Muster wie ein Fehler wiedergegeben wird ist immer gleich.
Bei if-else hast du ja eine genaue Vorstellung, was NORMAL passieren soll. Alles was AUSNAHMEN und FEHLER angeht betrifft "catch". Quasi ein generelles versagen.
Aber im Ansatz wie gesagt von dir nicht schlecht. Nur machst du dir das Leben damit unnötig schwer.