【问题标题】:Cut off text instead of going into a new line - Batch [closed]切断文本而不是换行 - 批处理[关闭]
【发布时间】:2022-02-11 18:34:51
【问题描述】:

我正在尝试在批处理文件中显示 cmdtext.txt。当没有剩余空间而不是进入新行时,我希望它只是切断(如下所示),因为它破坏了该文件的“样式”和实际用途。 (批处理文件最大化运行,因此文本将有足够的空间显示)

________/\\\\\\\\\__/\\\\____________/\\\\__/\\\\\\\\\\\\___________________/\\\\\\\\\\\\\\\______________________________/\\\\\\___________________________________________________________________________________________________________________________________________
______/\\\////////__\/\\\\\\________/\\\\\\_\/\\\////////\\\________________\///////\\\/////______________________________\////\\\__________________________________________________________________________________________________________________________________________
_____/\\\/___________\/\\\//\\\____/\\\//\\\_\/\\\______\//\\\_____________________\/\\\______________________________________\/\\\_________________________________________________________________________________________________________________________________________
_____/\\\_____________\/\\\\///\\\/\\\/_\/\\\_\/\\\_______\/\\\__/\\\\\\\\\\\_______\/\\\___________/\\\\\________/\\\\\_______\/\\\_____/\\\\\\\\\\________________________________________________________________________________________________________________________
_____\/\\\_____________\/\\\__\///\\\/___\/\\\_\/\\\_______\/\\\_\///////////________\/\\\_________/\\\///\\\____/\\\///\\\_____\/\\\____\/\\\//////________________________________________________________________________________________________________________________
______\//\\\____________\/\\\____\///_____\/\\\_\/\\\_______\/\\\_____________________\/\\\________/\\\__\//\\\__/\\\__\//\\\____\/\\\____\/\\\\\\\\\\______________________________________________________________________________________________________________________
________\///\\\__________\/\\\_____________\/\\\_\/\\\_______/\\\______________________\/\\\_______\//\\\__/\\\__\//\\\__/\\\_____\/\\\____\////////\\\_____________________________________________________________________________________________________________________
___________\////\\\\\\\\\_\/\\\_____________\/\\\_\/\\\\\\\\\\\\/_______________________\/\\\________\///\\\\\/____\///\\\\\/____/\\\\\\\\\__/\\\\\\\\\\____________________________________________________________________________________________________________________
_______________\/////////__\///______________\///__\////////////_________________________\///___________\/////________\/////_____\/////////__\//////////____________________________________________________________________________________________________________________

【问题讨论】:

  • 那么你的意思是你想让它知道什么时候窗口变小了,然后把剩下的切掉?这不是它的工作原理。 cmd 是一个命令终端。整个要点是包装文本以使其保持在用户的视图中。 cmd 用于运行您希望看到的命令,包括其结果。它不适用于显示 ascii 图像,因此使用换行或保持窗口大小或减小行尾 -------

标签: batch-file text alignment cut


【解决方案1】:

Batch 没有用于此类任务的内置函数。当您希望格式化或限制输出时,您需要考虑需要采取哪些步骤来实现目标。

首先,考虑您需要哪些信息。在此任务中,您需要:

  • 以列为单位的控制台宽度
    • 通过使用 for /f 循环遍历 mode 命令来获取它
  • 要格式化的数据

接下来,为了将输出限制为控制台宽度,可以使用 Substing 修改将您正在格式化的数据修剪为控制台宽度:


@Echo off
Call:Header
Set /A Y=lines,X=columns
Timeout /t 2 /NoBreak
mode 90,30
Call:Header
Timeout /t 2 /NoBreak
mode %X%,%Y%
Goto:Eof


:Header
(Set LF=^


%= Empty lines above required =%)
 Setlocal EnableDelayedExpansion
 For /f "tokens=1,2 Delims=: " %%G in ('mode ^| findstr /li "col lin"')Do Set "$%%G=%%H"
 Set "Output="
 For /f "usebackq tokens=1 delims=:1;" %%G in (`type "%~f0" ^| %SystemRoot%\System32\findstr.exe /blc:":1;" "%~f0"`) Do (
  Set "Line=%%G"
  Set "Output=!Output!!Line:~0,%$Columns%!!LF!"
 )
 Echo(!Output!
 For /f "tokens=1,2 Delims=;" %%G in ("lines=!$lines!;Columns=!$Columns!")Do Endlocal & (
  Set "%%G"
  Set "%%H"
 )
Exit /b


 

:1;________/\\\\\\\\\__/\\\\____________/\\\\__/\\\\\\\\\\\\___________________/\\\\\\\\\\\\\\\______________________________/\\\\\\___________________________________________________________________________________________________________________________________________
:1;______/\\\////////__\/\\\\\\________/\\\\\\_\/\\\////////\\\________________\///////\\\/////______________________________\////\\\__________________________________________________________________________________________________________________________________________
:1;_____/\\\/___________\/\\\//\\\____/\\\//\\\_\/\\\______\//\\\_____________________\/\\\______________________________________\/\\\_________________________________________________________________________________________________________________________________________
:1;_____/\\\_____________\/\\\\///\\\/\\\/_\/\\\_\/\\\_______\/\\\__/\\\\\\\\\\\_______\/\\\___________/\\\\\________/\\\\\_______\/\\\_____/\\\\\\\\\\________________________________________________________________________________________________________________________
:1;_____\/\\\_____________\/\\\__\///\\\/___\/\\\_\/\\\_______\/\\\_\///////////________\/\\\_________/\\\///\\\____/\\\///\\\_____\/\\\____\/\\\//////________________________________________________________________________________________________________________________
:1;______\//\\\____________\/\\\____\///_____\/\\\_\/\\\_______\/\\\_____________________\/\\\________/\\\__\//\\\__/\\\__\//\\\____\/\\\____\/\\\\\\\\\\______________________________________________________________________________________________________________________
:1;________\///\\\__________\/\\\_____________\/\\\_\/\\\_______/\\\______________________\/\\\_______\//\\\__/\\\__\//\\\__/\\\_____\/\\\____\////////\\\_____________________________________________________________________________________________________________________
:1;___________\////\\\\\\\\\_\/\\\_____________\/\\\_\/\\\\\\\\\\\\/_______________________\/\\\________\///\\\\\/____\///\\\\\/____/\\\\\\\\\__/\\\\\\\\\\____________________________________________________________________________________________________________________
:1;_______________\/////////__\///______________\///__\////////////_________________________\///___________\/////________\/////_____\/////////__\//////////____________________________________________________________________________________________________________________

【讨论】:

    猜你喜欢
    • 2022-01-03
    • 1970-01-01
    • 2014-11-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多