The pipeline in PowerShell offers an avenue to solve many issues with oneliners.

My fellow Windows PowerShell MVP Carlo Mancini proposed a very interesting and high quality oneliner contest. Perfect, challenge accepted :D

After reading the rules twice, I jumped into trying to figure out what’s the best approach to get the shortest solution for each puzzle. I usually focus on the approach before trying to shorten my solution because when you started digging in a hole, it’s hard to get out of it and come with a brand new approach to solve the puzzle.

**Task 1**: get the absolute value of the highest double floating point in an array

I noticed that the match operator with a regular expression allowed to filter out only double.

$n = -1,-2,-5,-8.9,'b',-9.11,-6,-3,-2,-9.1,-1,-1.4,'a' # match with regular expression $n -match '\d\.' # vs. a more classic approach $n | ? { $_ -is [double] }

There were only negative double numbers in the array. To get the shortest absolute value, I just multiplied by -1 instead of using the abs method of the [math] .Net class.

```
# .Net abs approach
[math]::abs(-1.4)
# vs. me cheating ;)
-1.4*-1
```

After bringing all the pieces together, my shortest solution for task 1 is:

# task 1 ($n-match'\.'|sort)[-1]*-1

**Task 2**: display 12345 as a int32 without using digits

To solve this task, my idea/approach was to use hexadecimal and do some substractions

0xb-0xa -eq 1 0xc-0xa -eq 2 0xd-0xa -eq 3 0xe-0xa -eq 4 0xf-0xa -eq 5

…except that I can’t use the leading 0.

So, I wondered how do I get a hexadecimal without using the 0x notation.

Well the answer is:

# you can actually do [char]'f' - [char]'a'

My shortest solution for task 2 is:

# task 2 [int]-join('b','c','d','e','f'|%{([char]$_-[char]'a')})

**Task 3**: Display PowerShell from ‘X ‘

When I saw this puzzle, I immediately thought, use only 1 occurrence of ‘X ‘, get rid of the whitespace behind X and use the ascii table to get P from X, o from X, w from X,…

My shortest solution was:

#task 3 split for readability -join( -8,23,31,13,26,-5,16,13,20,20|%{ [char]($_+[int][char]('X '-replace' ','')) })

PowerShell rocks 8-) and Bravo Carlo, I enjoyed this very nice contest :-)

**Bonus:** my favourite PS golfer Bartek also proposed his solutions: https://becomelotr.wordpress.com/2015/07/04/the-only-golf-i-play/