来自 Gradle 的奇怪控制字符 in Windows 10

Weird control characters from Gradle in Windows 10

在控制台中,当从 CMD 切换到 Windows 10.运行 时,我从 Gradle 得到 "funky" 输出。

[0K
[0K
[2A[1m<==-----------> 18% EXECUTING [9s][m[34D[1B[1m> :compileScala[m[15D[1B[2A[1m<==-----------> 18% EXECUTING [10s][m[35D[2B[2A[1m<==-----------> 18% EXECUTING [11s][m[35D[2B[2A[1m<==-----------> 18% EXECUTING [12s][m[35D[2B[2A[1m<==-----------> 18% EXECUTING [13s][m[35D[2B[2A[1m<==-----------> 18% EXECUTING [14s][m[35D[2B[2Athere were four feature warnings; re-run with -feature for details
four warnings found

我想这是某种控制字符的疯狂,其中 Gradle 试图合理地为其输出着色,而 Windows 解释错误。 PowerShell 和 SBT 工作正常 - 但将控制台 "Properties" 设置从 PowerShell 复制到 CMD 并不能解决问题。

有人解决了吗?

更新 2018-01-28 它也发生在我 Jenkins/Alpine/Docker OSX/macOS/whatnot 上的设置中。不再只是 windows。

...但是...它并没有发生在 Surface 笔记本电脑工作给我...超级奇怪。 Whatevs gradlew --console=plain 适合我。

我猜你可以在 gradle 命令行中传递 --console plain 来禁用富控制台,这可能是 "funky" 个字符

的原因

https://docs.gradle.org/current/userguide/gradle_command_line.html

要在 Windows 10 上解决此问题,请创建一个新的 DWORDHKEY_CURRENT_USER\Console\VirtualTerminalLevel 并设置为 1。有关详细信息,请参阅 this

我在 Git BASH shell 中看到过这种情况,它是 Git For Windows 的一部分。对我来说,解决方案是将 TERM 设置为 cygwin。这修复了输出而没有引入任何处理退格的问题。

export TERM=cygwin

我还尝试了 xterm、xterm-256color、ansi 和 vt100。 cygwin 术语对我来说是最可靠的。我现在 运行 \usr\bin\bash.exe 在 Windows 终端中,到目前为止它运行良好。

我在使用 Windows Terminal and "Git Bash" profile added automatically by GIT installer. For me the solution was to change the command-line for starting the terminal from <git_install_path>/bin/bash.exe to <git_install_path>/bin/usr/bash.exe following this advice 时遇到同样的问题。