我的问题是如何隐藏最后一行以上的所有文本?
以某种方式删除第一部分的文本,然后仅显示最后一行的回显 - 但仍然具有用户输入功能。
[= ]
[== ]
[===]
"last line with any text" (Y/N)?
我可以向批处理命令添加任何规则,以便仅在窗口中显示当前命令文本结果的最后一行?
答案1
不要使用 cmd,而要使用 powershell。Get-Content
命令(及其别名cat
和gc
)有一个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
@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"