Advertisement
Guest User

Untitled

a guest
Apr 30th, 2016
60
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.15 KB | None | 0 0
  1. # testing psInlineProgress
  2. $null = Start-Transcript -Path C:\users\grave\Scripts\InlineProgressBar\transcript.txt
  3. Write-Host ''
  4.  
  5. # Simple progressBar
  6. Write-Host 'Example of default behaviour' -ForegroundColor Magenta
  7. Write-Host ''
  8.  
  9. $collection = 0..12
  10. $count = 0
  11. foreach ($item in $collection) {
  12. $count++
  13. $percentComplete = ($count / $collection.Count) * 100
  14. Write-InlineProgress -Activity "Processing item #$($item)" -PercentComplete $percentComplete
  15.  
  16. Start-Sleep -Milliseconds (Get-Random -Minimum 160 -Maximum 400)
  17. }
  18. Write-InlineProgress -Activity 'Finished processing all items' -Complete -UseWriteOutput
  19. Write-Host ''
  20.  
  21. # ProgressBar with more information
  22. Write-Host 'Example with SecondsRemaining and SecondsElapsed' -ForegroundColor Magenta
  23. Write-Host ''
  24.  
  25. $collection = 0..12
  26. $count = 0
  27. $start = Get-Date
  28. $secondsRemaining = 0
  29. $secondsElapsed = 0
  30. foreach ($item in $collection) {
  31. $count++
  32. $percentComplete = ($count / $collection.Count) * 100
  33. Write-InlineProgress -Activity "Processing item #$($item)" -PercentComplete $percentComplete -SecondsRemaining $secondsRemaining -SecondsElapsed $secondsElapsed.TotalSeconds
  34.  
  35. Start-Sleep -Milliseconds (Get-Random -Minimum 160 -Maximum 400)
  36.  
  37. # calculating seconds elapsed and remaining
  38. $secondsElapsed = (Get-Date) - $start
  39. $secondsRemaining = ($secondsElapsed.TotalSeconds / $count) * ($collection.Count - $count)
  40. if ($secondsRemaining -lt 0) {
  41. $secondsRemaining = 0
  42. }
  43. }
  44. Write-InlineProgress -Activity 'Finished processing all items' -Complete -UseWriteOutput -SecondsRemaining 0 -SecondsElapsed $secondsElapsed.TotalSeconds
  45. Write-Host ''
  46.  
  47. # Simple progressBar without Percent
  48. Write-Host 'Example of progress bar without percent' -ForegroundColor Magenta
  49. Write-Host ''
  50.  
  51. $collection = 0..12
  52. $count = 0
  53. foreach ($item in $collection) {
  54. $count++
  55. $percentComplete = ($count / $collection.Count) * 100
  56. Write-InlineProgress -Activity "Processing item #$($item)" -PercentComplete $percentComplete -ShowPercent:$false
  57.  
  58. Start-Sleep -Milliseconds (Get-Random -Minimum 160 -Maximum 400)
  59. }
  60. Write-InlineProgress -Activity 'Finished processing all items' -Complete -UseWriteOutput -ShowPercent:$false
  61. Write-Host ''
  62.  
  63. # With error handling
  64. Write-Host 'Example of error handling' -ForegroundColor Magenta
  65. Write-Host ''
  66.  
  67. $collection = 0..12
  68. $count = 0
  69. $error = $false
  70. foreach ($item in $collection) {
  71. $count++
  72. $percentComplete = ($count / $collection.Count) * 100
  73. Write-InlineProgress -Activity "Processing item #$($item)" -PercentComplete $percentComplete
  74.  
  75. try {
  76. if ($item -eq 9) {
  77. throw 'ERROR HAPPENED!'
  78. }
  79. else {
  80. Start-Sleep -Milliseconds (Get-Random -Minimum 160 -Maximum 400)
  81. }
  82. }
  83. catch {
  84. Write-InlineProgress -Stop -OutputLastProgress
  85. $error = $true
  86. $errorMessage = $_.Exception.Message
  87. break
  88. }
  89. }
  90. if (-not $error) {
  91. Write-InlineProgress -Activity 'Finished processing all items' -Complete
  92. }
  93. else {
  94. # workaround: this Write-Host is needed to be sure that the warning is written on the next line
  95. Write-Host ''
  96. Write-Warning $errorMessage
  97. }
  98. Write-Host ''
  99. $null = Stop-Transcript
  100.  
  101. # customized progress bar
  102. Write-Host 'Examples of customized progress bars' -ForegroundColor Magenta
  103. Write-Host ''
  104.  
  105. $collection = 0..12
  106. $count = 0
  107. foreach ($item in $collection) {
  108. $count++
  109. $percentComplete = ($count / $collection.Count) * 100
  110. Write-InlineProgress -Activity "Processing item #$($item)" -PercentComplete $percentComplete -ProgressCharacter ([char]9632) -ProgressFillCharacter ([char]9632) -ProgressFill ([char]183) -BarBracketStart $null -BarBracketEnd $null
  111.  
  112. Start-Sleep -Milliseconds (Get-Random -Minimum 160 -Maximum 400)
  113. }
  114. Write-InlineProgress -Activity 'Finished processing all items' -Complete -ProgressCharacter ([char]9632) -ProgressFillCharacter ([char]9632) -ProgressFill ([char]183) -BarBracketStart $null -BarBracketEnd $null
  115.  
  116. $collection = 0..12
  117. $count = 0
  118. foreach ($item in $collection) {
  119. $count++
  120. $percentComplete = ($count / $collection.Count) * 100
  121. Write-InlineProgress -Activity "Processing item #$($item)" -PercentComplete $percentComplete -ProgressCharacter ([char]9608) -ProgressFillCharacter ([char]9608) -ProgressFill ([char]183) -BarBracketStart '|' -BarBracketEnd '|'
  122.  
  123. Start-Sleep -Milliseconds (Get-Random -Minimum 160 -Maximum 400)
  124. }
  125. Write-InlineProgress -Activity 'Finished processing all items' -Complete -ProgressCharacter ([char]9608) -ProgressFillCharacter ([char]9608) -ProgressFill ([char]183) -BarBracketStart '|' -BarBracketEnd '|'
  126.  
  127. $collection = 0..12
  128. $count = 0
  129. foreach ($item in $collection) {
  130. $count++
  131. $percentComplete = ($count / $collection.Count) * 100
  132. Write-InlineProgress -Activity "Processing item #$($item)" -PercentComplete $percentComplete -ProgressCharacter ([char]9472) -ProgressFillCharacter '-' -ProgressFill '-'
  133.  
  134. Start-Sleep -Milliseconds (Get-Random -Minimum 160 -Maximum 400)
  135. }
  136. Write-InlineProgress -Activity 'Finished processing all items' -Complete -ProgressCharacter ([char]9472) -ProgressFillCharacter '-' -ProgressFill '-'
  137.  
  138. $collection = 0..12
  139. $count = 0
  140. foreach ($item in $collection) {
  141. $count++
  142. $percentComplete = ($count / $collection.Count) * 100
  143. Write-InlineProgress -Activity "Processing item #$($item)" -PercentComplete $percentComplete -ProgressCharacter '-' -ProgressFillCharacter '|' -ProgressFill '\' -BarBracketStart '|' -BarBracketEnd '|'
  144.  
  145. Start-Sleep -Milliseconds (Get-Random -Minimum 160 -Maximum 400)
  146. }
  147. Write-InlineProgress -Activity 'Finished processing all items' -Complete -ProgressCharacter '-' -ProgressFillCharacter '|' -ProgressFill '\' -BarBracketStart '|' -BarBracketEnd '|'
  148.  
  149. $collection = 0..12
  150. $count = 0
  151. foreach ($item in $collection) {
  152. $count++
  153. $percentComplete = ($count / $collection.Count) * 100
  154. Write-InlineProgress -Activity "Processing item #$($item)" -PercentComplete $percentComplete -ProgressCharacter 'C' -ProgressFillCharacter '.' -ProgressFill 'o'
  155.  
  156. Start-Sleep -Milliseconds (Get-Random -Minimum 160 -Maximum 400)
  157. }
  158. Write-InlineProgress -Activity 'Finished processing all items' -Complete -ProgressCharacter 'C' -ProgressFillCharacter '.' -ProgressFill 'o'
  159.  
  160.  
  161. Write-host ''
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement