[powershell] Check if a string is not NULL or EMPTY

In below code, I need to check if version string is not empty then append its value to the request variable.

if ([string]::IsNullOrEmpty($version))
{
    $request += "/" + $version
}

How to check not in if condition?

This question is related to powershell

The answer is


if (!$variablename) { Write-Host "variable is null" }

I hope this simple answer will is resolve the question. Source


If the variable is a parameter then you could use advanced function parameter binding like below to validate not null or empty:

[CmdletBinding()]
Param (
    [parameter(mandatory=$true)]
    [ValidateNotNullOrEmpty()]
    [string]$Version
)

As in many other programming and scripting languages you can do so by adding ! in front of the condition

if (![string]::IsNullOrEmpty($version))
{
    $request += "/" + $version
}

You don't necessarily have to use the [string]:: prefix. This works in the same way:

if ($version)
{
    $request += "/" + $version
}

A variable that is null or empty string evaluates to false.


I would define $Version as a string to start with

[string]$Version

and if it's a param you can use the code posted by Samselvaprabu or if you would rather not present your users with an error you can do something like

while (-not($version)){
    $version = Read-Host "Enter the version ya fool!"
}
$request += "/" + $version