Advertisement
Guest User

Untitled

a guest
Jul 16th, 2018
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.26 KB | None | 0 0
  1. # Form zeichnen
  2. $ObjForm = New-Object System.Windows.Forms.Form
  3. $ObjForm.Text = "Demonstration of Progress-Bar In PowerShell"
  4. $ObjForm.Height = 150
  5. $ObjForm.Width = 500
  6. $ObjForm.BackColor = "White"
  7.  
  8. $ObjForm.FormBorderStyle = [System.Windows.Forms.FormBorderStyle]::FixedSingle
  9. $ObjForm.StartPosition = [System.Windows.Forms.FormStartPosition]::CenterScreen
  10.  
  11. # Label1 erstellen
  12. $ObjLabel = New-Object System.Windows.Forms.Label
  13. $ObjLabel.Text = ""
  14. $ObjLabel.Left = 5
  15. $ObjLabel.Top = 10
  16. $ObjLabel.Width = 500 - 20
  17. $ObjLabel.Height = 15
  18. $ObjLabel.Font = "Tahoma"
  19.  
  20. # Label2 erstellen
  21. $ObjLabel2 = New-Object System.Windows.Forms.Label
  22. $ObjLabel2.Text = ""
  23. $ObjLabel2.Left = 5
  24. $ObjLabel2.Top = 30
  25. $ObjLabel2.Width = 500 - 20
  26. $ObjLabel2.Height = 15
  27. $ObjLabel2.Font = "Tahoma"
  28.  
  29. ## Label auf Form zeichnen
  30. $ObjForm.Controls.Add($ObjLabel)
  31. $ObjForm.Controls.Add($ObjLabel2)
  32.  
  33. $PB = New-Object System.Windows.Forms.ProgressBar
  34. $PB.Name = "PowerShellProgressBar"
  35. $PB.Value = 0
  36. $PB.Style="Continuous"
  37.  
  38. $System_Drawing_Size = New-Object System.Drawing.Size
  39. $System_Drawing_Size.Width = 500 - 40
  40. $System_Drawing_Size.Height = 20
  41. $PB.Size = $System_Drawing_Size
  42. $PB.Left = 5
  43. $PB.Top = 80
  44. $ObjForm.Controls.Add($PB)
  45.  
  46. # Progressbar anzeigen und Powershell Skript starten
  47. $ObjForm.Show() | Out-Null
  48. $ObjForm.Focus() | Out-NUll
  49. $ObjLabel.Text = "Dateien werden kopiert, bitte warten."
  50. $ObjForm.Refresh()
  51.  
  52. Start-Sleep -Seconds 1
  53.  
  54. #Filtern des Hostname Teiles, der für den Pfad benötigt wird
  55. $fullHostname = Invoke-Expression "whoami"
  56. $trimSign = $fullHostname.IndexOf("\")
  57. $hostname = $fullHostname.substring($trimSign+1)
  58.  
  59. #Pfade für die Sicherung
  60. $cacheDirectory = "C:\Users\$hostname\Documents\Citrix_Datensicherungsprogramm\Arbeitsordner"
  61. $safeDirectory = "C:\Temp\Sicherungsordner"
  62.  
  63. #Infos für die ProgressBar
  64. $files = Get-ChildItem $safeDirectory -Recurse -File
  65. $numberOfFiles= $files.count
  66. $fileCopying = 1
  67.  
  68. foreach($file in $files){
  69. Invoke-Expression "Robocopy $safeDirectory $cacheDirectory '$file' /e"
  70.  
  71. $ObjLabel.Text = "$file"
  72. $ObjLabel2.Text = "Datei $fileCopying von $numberOfFiles wird kopiert."
  73.  
  74. $value = ($fileCopying/$numberOfFiles)*100
  75. $PB.Value = $value
  76. $ObjForm.Refresh()
  77.  
  78. $fileCopying++
  79. }
  80.  
  81. $ObjForm.Close()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement