Dlaczego tak
W PowerShell zmienne środowiskowe odczytuje się przez dysk env:, poprzedzony znakiem $, czyli $env:USERPROFILE. Zapis %USERPROFILE% działa w wierszu poleceń cmd, ale PowerShell wyświetli go jako zwykły tekst. $USERPROFILE to niezdefiniowana zmienna PowerShell, więc wynik będzie pusty, a env:USERPROFILE bez znaku $ zostanie wypisane dosłownie.