Getting the no of days difference from the two dates in Powershell

Use New-TimeSpan as it represents a time interval. Like so,

$d1 = '2017-01-01'
$d2 = '2017-05-01'
$ts = New-TimeSpan -Start $d1 -End $d2
$ts.Days # Check results

$DateStr is going to be a string, so it can't be parsed as a date. You can also use new-timespan to get the difference between two dates.

$Date = Get-Date

$diff = Get-Content C:\Users\Date.txt -raw

#Convert it to the date type
$diff = [datetime]::parseexact($diff, 'yyyyMMdd', $null)

$diff3 = New-TimeSpan -Start $diff -end $Date

#Number of days