我想要实现的是一个没有有毒输出的自编译c#文件.我正在尝试使用Console.MoveBufferArea方法实现这一点,但看起来不起作用.例如.- 使用.bat扩展名保存下面的代码:
// 2>nul||@goto :batch
/*
:batch
@echo off
setlocal
:: find csc.exe
set "frm=%SystemRoot%\Microsoft.NET\Framework\"
for /f "tokens=* delims=" %%v in ('dir /b /a:d /o:-n "%SystemRoot%\Microsoft.NET\Framework\v*"') do (
set netver=%%v
goto :break_loop
)
:break_loop
set csc=%frm%%netver%\csc.exe
:: csc.exe found
%csc% /nologo /out:"%~n0.exe" "%~dpsfnx0"
%~n0.exe
endlocal
exit /b 0
*/
public class Hello
{
public static void Main() {
ClearC();
System.Console.WriteLine("Hello, C# World!");
}
private static void ClearC() {
System.Console.MoveBufferArea(
0,0,
System.Console.BufferWidth,System.Console.BufferHeight-1,
0,0
);
}
}
Run Code Online (Sandbox Code Playgroud)
输出将是: …
是否有一个功能可以清除命令提示符中的最后一行?我不是说“ cls”-它清除了整个屏幕,我只想删除最后一行。
例如,我正在搜索文件夹及其子文件夹中的文件,我想打印到cmd当前文件夹-但是我想在文件夹更改时重写它,而不仅仅是追加到末尾。我知道,这只是一种平庸,但是我很感兴趣怎么做。
Windows 10控制台主机对ANSI转义序列conhost.exe具有本机支持,旧版本则不支持.如何从批处理文件中检测是否存在控制台ANSI支持?
是否可以GetConsoleMode直接从批处理文件中调用或其他Windows API调用?