问题
This one don't work (on Windows in a Cmd-Box):
import 'dart:io';
void main() {
print("Hello, World!");
Process.start('cls', [], runInShell: true).then((process) {
stdout.addStream(process.stdout);
stderr.addStream(process.stderr);
});
}
回答1:
EDIT
This seems to have the answer why it doesn't work on windows How to make win32 console recognize ANSI/VT100 escape sequences?
ORIGINAL
if(Platform.isWindows) {
// not tested, I don't have Windows
// may not to work because 'cls' is an internal command of the Windows shell
// not an executeable
print(Process.runSync("cls", [], runInShell: true).stdout);
} else {
print(Process.runSync("clear", [], runInShell: true).stdout);
}
or
print("\x1B[2J\x1B[0;0H"); // clear entire screen, move cursor to 0;0
print("xxx") // just to show where the cursor is
// http://en.wikipedia.org/wiki/ANSI_escape_code#CSI_codes
or
for(int i = 0; i < stdout.terminalLines; i++) {
stdout.writeln();
}
The cursor position is on the bottom then. You have to add newlines after some output to move it to the top.
来源:https://stackoverflow.com/questions/21269769/clearing-the-terminal-screen-in-a-command-line-dart-app