4

好的,所以我想创建一个原生应用程序来读取一些环境变量,并根据一些业务逻辑,将它们的值更改为其他值。我决定用 Kotlin 来做。

我设法通过创建函数来了解如何更改系统环境变量:

fun call(arg: String) = platform.posix.system(command)

fun setEnvironmentVariable(variable: String, value: String) {
    println("Changing value of $variable to $value")
    call("SETX $variable $value")
}

但它只会改变价值。我想将它存储在 Kotlin 变量中并对其进行一些操作。

发出语句 call("SET $variable") 将值打印到命令提示符,但我不知道如何从 Kotlin 中捕获它。我想是否有一种方法可以将命令提示符的输出提取到一个字符串中,这样会更容易,即使 Windows 以 myvariable=myvalue 的形式输出它,而不仅仅是值。

提前致谢

4

1 回答 1

6

以下是在 Kotlin/Native 中读取环境变量的方法:

import platform.posix.*
import kotlinx.cinterop.*

fun main() {
    val variable = "whatever..."
    println(getenv(variable)?.toKString())
}
于 2019-03-05T11:56:59.897 回答