31 lines
847 B
R
31 lines
847 B
R
|
|
winver_ver <- function(v = NULL) {
|
|
if (is.null(v)) v <- system("cmd /c ver", intern = TRUE)
|
|
v2 <- grep("\\[.*\\s.*\\]", v, value = TRUE)[1]
|
|
v3 <- sub("^.*\\[[^ ]+\\s+", "", v2)
|
|
v4 <- sub("\\]$", "", v3)
|
|
if (is.na(v4)) stop("Failed to parse windows version")
|
|
v4
|
|
}
|
|
|
|
winver_wmic <- function(v = NULL) {
|
|
cmd <- "wmic os get Version /value"
|
|
if (is.null(v)) v <- system(cmd, intern = TRUE)
|
|
v2 <- grep("=", v, value = TRUE)
|
|
v3 <- strsplit(v2, "=", fixed = TRUE)[[1]][2]
|
|
v4 <- sub("\\s*$", "", sub("^\\s*", "", v3))
|
|
if (is.na(v4)) stop("Failed to parse windows version")
|
|
v4
|
|
}
|
|
|
|
winver <- function() {
|
|
## First we try with `wmic`
|
|
v <- if (Sys.which("wmic") != "") {
|
|
tryCatch(winver_wmic(), error = function(e) NULL)
|
|
}
|
|
## Otherwise `ver`
|
|
if (is.null(v)) winver_ver() else v
|
|
}
|
|
|
|
if (is.null(sys.calls())) cat(winver())
|