The problem with PowerShell is that sometimes you can't use it
PowerShell puts the fun back in scripting and it's horrfying but every now and again I'm forced to write a good old batch script. Batch is good enough to get most jobs done it's just not as "fun" as PowerShell. Recently it came up in an internal alias about how to detect if you're running on Vista from a batch script.
for /f "tokens=4 delims=.] " %%i in ('ver') do set OSVERSION=%%i
This parses the output of the "ver" command in batch and gives back the result. If %OSVERSION% is 6 then you're on Vista.
Comments
Anonymous
January 31, 2007
wow, you can almost get the version almost as easily as uname -a | grep -oE "[0-9]+.([0-9]+.?)+" example run: $>uname -a | grep -oE "[0-9]+.([0-9]+.?)+" 2.6.19.1Anonymous
January 31, 2007
ie_hater: Did you notice that this blog post was about the "old" (non-powershell) way to get the OS version? With PS, it's much easier and does not require any regex knowledge or string parsing. Here are some examples: PS C:UsersMathias> [Environment] IsPublic IsSerial Name BaseType -------- -------- ---- -------- True False Environment System.Object PS C:UsersMathias> [Environment]::OsVersion Platform ServicePack Version VersionString -------- ----------- ------- ------------- Win32NT 6.0.6000.0 Microsoft Windows NT 6.0.6... PS C:UsersMathias> [Environment]::OsVersion.VersionString Microsoft Windows NT 6.0.6000.0 PS C:UsersMathias> [Environment]::OsVersion.Version Major Minor Build Revision ----- ----- ----- -------- 6 0 6000 0 PS C:UsersMathias> [Environment]::OsVersion.Version.Major 6