How to Loop your Code | PowerShell Looping

How to Loop your Code | PowerShell Looping

Here’s one way to loop your code with PowerShell. PowerShell looping is one of the easiest ways to loop through processes in code and a good way to start learning to iterate little processes you develop.

A rather typical procedure to learn early or it won’t make much sense when down the rabbit hole. I like how this code writes and teaches you how to iterate rather quickly. Be sure to paste and hit play.

$k= New-Object -comobject "Wscript.Shell"

$a=1
$b=5
$n="`n"

Start-Sleep -seconds $b

DO
{
$k.sendkeys("1 of $a$n")
$a++
Start-Sleep -seconds $b
} While ($a -le 5)

There are lots of ways to do things in code. Maybe you loop things differently?

But PowerShell keeps it rather simple.

When you’re wanting to loop text output, you can do so easily with Powershell using a DO WHILE.

do while loop in powershell-Windows PowerShell ISE

Here’s a loop we can use to repeat stuff in PowerShell.

Found the beginning of this lesson here, meaning I found code, copy pasted it, and it was enough to help me learn every aspect of the code. The lesson @ the Microsoft website is a little more extreme and doesn’t explain the line by line code, which I feel needs an extra explanation.

Line 1
$k= New-Object -com "Wscript.Shell"

New-Object Creates an instance of a Microsoft .NET Framework or COM object.

New-Object Opens the ability to send a keystroke within PowerShell.

We call this with $k moving forward.

Like in math class, you used X to represent a value or Y to represent a value.

This makes our code easier to write and read.

$k.sendkeys, later in the script, is now easier.

-comobject or -com for short is a special ability.

The -Comobject Specifies the programmatic identifier (ProgID) of the COM object. Luckily you don’t need to understand what this means.

Line 3,4,5
$a=1
$b=5
$n="`n"

Like in math class, you have X representing a value and Y representing a value.

We will use these extra variables later in the tutorial.

Today, $a and $b represent a tiny lesson, which is.. you can leave unused code.

$n="`n"

This tells PowerShell to make a new line whenever we say $n in our code. So when we output keyboard key strokes of “something $n” — powershell essentially hits “ENTER” on the keyboard. This is a powerful next step for anyone looking to automate their UI.

Line 7
Start-Sleep -seconds $b

Ever tried living without sleeping? Writing UI automation is the same. You need breaks, waits, pauses, etc.

In powershell, it’s called Start-Sleep -seconds X…

Line 9,10,11,12,13,14
DO
{
$k.sendkeys("1 of $a$n")
$a++
Start-Sleep -seconds $b
} While ($a -le 5)

Here’s the full loop, a beautiful little tool that we can use to do very quick simple tasks, or loop massive dynamic scripts. Maybe it emails someone something every 15 minutes. Like a scheduler, you can pad a pause into this loop and expect the loop to repeat at the speed you desire.

So, not only are we saying something with our sendkeys tool, but we are also padding a pause into the tool.

If you want to learn more about the sendkeys tool, I built a blog called Make Your Computer Type For You in Powershell. Where I discuss that tool more. Let’s continue.

Line 9,10,12,14
DO
{
$a++
} While ($a -le 5)

DO this work until X equals 5.

-lt is less than, and -gt is greater than. -le seems to be another operand and I cant seem to google it today. what’s nice is this code takes a split second to run. Test and use what works best for you.

$a++ is thing that increases. Per loop.

So the first run, makes the $a=1.

The second run, makes the $a=2.

The third run, makes the $a=3

4th, $a=4

5th, $a=5. Now the condition at the end stops the loop and continues reading the rest of the code.

After it repeats the loop 5 times.

It knows it increases once because of the $a++ logic we built.

$a++ effectively increases, +1, each time. It also helps us stop our loop from running forever. If you remove $a++ the loop will keep running into you end the script. Which means this could be a bit risky when pointed at the wrong or right thing.

And the condition…

1 -le 5

2 -le 5

3 -le 5

4 -le 5

5 -le 5

END… now the rest of your code would be computed.

 

Make Your Computer Type For You in PowerShell

Make Your Computer Type For You in PowerShell

Hello, here’s a quick tutorial on how to make your computer type for you in PowerShell on Windows.

Have you ever needed to type something on a computer?

Over and over.

And maybe you did not want to repeat that task.

This script is for you.

Making your computer type for you is the usual first step to learning how to make your computer do your work.

Also, the first step into getting started with UI automation.

What is UI AUTOMATION? An entire world of easy tools, that make your life easier the more you learn.

The goal here is you want to learn how to automate something that you are doing manually.

This kind of automation should be used to put yourself out of work so that you can get your life back with your family.

You can open PowerShell ISE, it’s a code editor.

Powershell ISE is a free app to help you develop code in Powershell. AKA Posh.

Powershell ISE is a free app to help you develop code in Powershell. AKA Posh.

Or open a text file and save the following code:

$k= New-Object -com "Wscript.Shell"
$a=1
$b=2
$c="Meow moew"
Start-Sleep -seconds 5
$k.sendkeys("$c")

Save as a .ps1 file.

Hit play, or double click the file to execute.

It will take 5 seconds, then your computer will type Meow Meow.

If you kick off any automated security alerts, work with your IT department to unlock this ability. You are building a new app and that means it can do positive or negative things. Which is a risk from a commercial/enterprise business computing perspective. Also, data privacy, your manager, smart people in your company will likely want to know what the code looks like and will seek to read the code before they let it play in their environment. Or you’re at home and no big deal.

Line by line tutorial below:

Line 1
$k= New-Object -com "Wscript.Shell"

New-Object Creates an instance of a Microsoft .NET Framework or COM object.

New-Object Opens the ability to send a keystroke within PowerShell.

We call this with $k moving forward.

Like in math class, you used X to represent a value or Y to represent a value.

This makes our code easier to write and read.

$k.sendkeys, later in the script, is now easier.

-comobject or -com for short is a special ability.

The -Comobject Specifies the programmatic identifier (ProgID) of the COM object. Luckily you don’t need to understand what this means.

Line 3,4,5
$a=1
$b=2
$c="Meow moew"

Like in math class, you have X representing a value and Y representing a value.

We will use these extra variables later in the tutorial.

Today, $a and $b represent a tiny lesson, which is.. you can leave unused code.

And if you remove it, your code will be faster.

Line 7
Start-Sleep -seconds 5

Ever tried living without sleeping? Writing UI automation is the same. You need breaks, waits, pauses, etc.

In powershell, it’s called Start-Sleep -seconds X…

Optimize your code by updating the following.

$k= New-Object -com "Wscript.Shell"
$a=1
$b=5
$c="Meow moew"
Start-Sleep -seconds $b
$k.sendkeys("$c")

Swapping values visually in paint using powershell

Paint helps quickly explain where these two swap. Helping us apply another X value to a number.

explaining basic stuff with screenshots in powershell

Here’s how we use $b later in the lesson. Glad you’re not skipping ahead! Powershell isn’t half bad, right?

Line 8
$k.sendkeys("$c")

Finally, let’s make my computer say meow meow.

You’re passing the $c = “Meow meow” to whatever text field available.

explaining UI automation by automating text into my twitter handle @itylergarrett

Meow meow on twitter.. Great. 0 likes.

Interested in more?

How to Loop your Code | PowerShell Looping

Cool, I’m sure I will write about how to do this in advanced versions but without the basics, I doubt anyone will understand where this will go!

Best,

Tyler Garrett

A Very Quick Introduction to PowerShell

Powershell is a windows only computer programming language and it reads pretty easy on the eyes. You might be wondering why I’m saying it reads easy.

Some programming languages to do not read easy.

Some programming languages do read easy..

Powershell is one of those easy languages.

It’s free and comes on every windows computer.

It also usually comes with PowerShell ISE.

I’m going to add on to this more today and want a link to easily copy and paste. Come back later if you want to learn more.

How to Loop your Code | PowerShell Looping

Make Your Computer Type For You in PowerShell