Export (0) Print
Expand All
Expand Minimize

Converting VBScript's InStrRev Function

Windows PowerShell

Definition: Returns the position of an occurrence of one string within another, from the end of string.


To the best of our knowledge, no Scripting Guy has ever used the InStrRev function. (Or, if they have, they won’t admit it.) What InStrRev does is examine a string value and then determine the last occurrence of a specified substring.

We don’t blame you. But here’s an example. Suppose you run InStrRev against the string value 1234x6789x1234, specifying the letter x as the substring you’re searching for. In that case InStrRev will return a 10, because the last x happens to be the 10th character in the string.

OK. Now, what if you want to perform this same trick in Windows PowerShell? No problem: just use the LastIndexOfAny method, like so:

$a = "1234x6789x1234"
$b = $a.lastindexofany("x")

When you run those two commands and then echo back the value of $b you should get the following:


And, no, that’s not a mistake: in .NET the first character position in a string is actually position 0; that makes the 10th character (the character we're interested in) position 9. (A good thing to keep in mind if and when you start doing string manipulation in Windows PowerShell.)

Return to the VBScript to Windows PowerShell home page

Was this page helpful?
(1500 characters remaining)
Thank you for your feedback
© 2014 Microsoft