隐藏 cmd 窗口中的所有文本,除了最后一行?

隐藏 cmd 窗口中的所有文本,除了最后一行?

我的问题是如何隐藏最后一行以上的所有文本?
以某种方式删除第一部分的文本,然后仅显示最后一行的回显 - 但仍然具有用户输入功能。

[=  ]
[== ]
[===]
"last line with any text" (Y/N)?

我可以向批处理命令添加任何规则,以便仅在窗口中显示当前命令文本结果的最后一行?

答案1

不要使用 cmd,而要使用 powershell。Get-Content命令(及其别名catgc)有一个Tail选项可以做到这一点

Get-Content file_path -Tail 1

如果文本是另一个命令的结果,则使用Select-Object或其select别名

your_command | Select-Object -Last 1

如果你确实需要使用 cmd,那么请像这样从 PowerShell 运行命令

powershell -Com "gc file_path -Tail 1"
powershell -Com "your_command | select -Last 1"

如果你的系统上有某种 POSIX 环境 wsl/wsl2 或 cygwin,那么只需使用tail

cat file | tail -n 1
your_command | tail -n 1
tail file -n 1

也可以看看

答案2

  • 要删除/移除已使用的行,您可以使用以下解决方案@LotPings在此回答另外,你也可以通过 Certutil 解码 base64 来使用它
@echo off 

title <nul && title Q1575583

call %:^0 && setlocal EnableDelayedExpansion

for /L %%L in (1 1 4)do echo\Line 0%%L

%__APPDIR__%timeout.exe -1 >nul 
type "%temp%\_bs.bin" 
type "%temp%\_bs.bin" 

%__APPDIR__%timeout.exe -1 >nul 
echo/Line 06

%__APPDIR__%timeout.exe -1 >nul 
type "%temp%\_bs.bin" 

%__APPDIR__%timeout.exe -1 >nul 
echo/Line 07

%__APPDIR__%timeout.exe -1 >nul 
type "%temp%\_bs.bin" 

%__APPDIR__%timeout.exe -1 >nul
type "%temp%\_bs.bin" 

2>nul del/Q /F "%temp%\_bs.bin" 
endlocal & goto=:EOF

%:^0
>nul 2>&1 del /q /f "%temp%\_bs.bin"
>nul 2>&1 "%__APPDIR__%Certutil.exe" -decode -f "%~f0" "%temp%\_bs.bin" & exit /b
:: <-----BEGIN .\_bs.bin ----- G1sxRhtbMEobWzFGG1swSg0K== -----END .\_bs.bin -----> ::
  • 输出:

在此处输入图片描述

  • 关于此bat/cmd文件中Base64字符串解码"%temp%\_bs.bin"

在此处输入图片描述

相关内容