batch-file - 使用模式命令调整大小命令提示符清除整个屏幕
问题描述
因此,我尝试编写代码以生成随机字符,并且我想让屏幕始终保持相同的大小,但是当我尝试使用模式命令时,它会清除所有文本,或者您可以将其称为整个屏幕这是代码:
:startprg
mode con: cols=120 lines=24
setlocal EnableDelayedExpansion
set char=abcdeijklmnstuvwxyzABCDETUVYZ23456789^^%%_`^^%%_`^^%%_`^^%%_`^^%%_`☺☻♥♦♣♠◘•○☺☻♥♦♣♠◘♂♀q7•-6○Z♂n¡* /*-+@#$*()_=-=+
set count=0
set hla=0
:Number
set hla=120
set /a length=-1 + !hla!
:Loop
set /a count+=1
set /a rand=%Random%%%61
set buffer=!buffer!!char:~%rand%,1!
if !count! leq !length! goto Loop
title ^!buffer!
echo ^!buffer!
set /a length+=1
endlocal
goto startprg
请帮助我,我使用的是 Windows 10,但我不知道如何解决此问题
解决方案
当前每次goto :startprg
你重新set
模式。只需将标签移至 aftermode con:
即可仅启动一次。所以应该是:
@echo off
mode con: cols=120 lines=24
:startprg
setlocal EnableDelayedExpansion
所以完整的代码如下:
@echo off
mode con: cols=120 lines=24
:startprg
setlocal EnableDelayedExpansion
set char=abcdeijklmnstuvwxyzABCDETUVYZ23456789^^%%_`^^%%_`^^%%_`^^%%_`^^%%_`☺☻♥♦♣♠◘•○☺☻♥♦♣♠◘♂♀q7•-6○Z♂n¡* /*-+@#$*()_=-=+
set count=0
set hla=0
:Number
set hla=120
set /a length=-1 + !hla!
:Loop
set /a count+=1
set /a rand=%Random%%%61
set buffer=!buffer!!char:~%rand%,1!
if !count! leq !length! goto Loop
title ^!buffer!
echo ^!buffer!
set /a length+=1
endlocal
goto startprg
推荐阅读
- angular - Angular mat-datepicker 奇怪的行为
- mysql - 如何使用nodejs更新mysql json数组
- authentication - 密码重置的登录凭据在 Laravel 7 中不起作用
- scrapy - ScrapingHub 部署失败
- asp.net - 仅当为 true 时才根据需要进行字段验证
- reactjs - 反应中多次调用handleKeyPress方法
- jquery - Sinatra - 4.0.1 无法加载 JQuery - net::ERR_ABORTED 404(未找到)
- android - Android 作为 UVC 相机
- xml - 任务计划程序自定义触发器 - 当 EventID 为 FOO 且 EventData.Data 为 BAR 时启动
- nginx - Nginx 不存储缓存