使用
2024-01-01


我正在尝试创建打字机效果,但 SET /P 正在删除空格,因为我使用的是 win7。我还缺少其他方法或技巧吗?

这是我到目前为止想出的代码:

@echo off
setlocal enabledelayedexpansion


set text=This is a test
call :strlen len text
for /l %%b in (0,1,%len%) do (
  set /a T=!random! %% 3
  ping -n !T! 127.0.0.1>nul
  <nul set /p=!text:~%%b,1!
)
exit /b

:strlen <resultVar> <stringVar>
setlocal EnableDelayedExpansion
set "s=!%~2!#" &    set "len=0"
for %%P in (4096 2048 1024 512 256 128 64 32 16 8 4 2 1) do (
if "!s:~%%P,1!" NEQ "" ( set /a "len+=%%P" & set "s=!s:~%%P!" ))
endlocal &set "%~1=%len%"
exit /b

如果输出严格针对屏幕,并且从不重定向到文件,那么有一个使用退格字符的简单解决方案。在每个 SET /P 输出前面加上一些可打印字符,后跟一个退格键,最后是所需的字符串。

@echo off
setlocal enabledelayedexpansion

:: Define BS to contain backspace character
for /f %%A in ('"prompt $H&for %%B in (1) do rem"') do set "BS=%%A"

set text=This is a test
call :strlen len text
for /l %%b in (0,1,%len%) do (
  set /a T=!random! %% 3
  ping -n !T! 127.0.0.1>nul
  <nul set /p=.!BS!!text:~%%b,1!
)
exit /b

:strlen <resultVar> <stringVar>
setlocal EnableDelayedExpansion
set "s=!%~2!#" &    set "len=0"
for %%P in (4096 2048 1024 512 256 128 64 32 16 8 4 2 1) do (
if "!s:~%%P,1!" NEQ "" ( set /a "len+=%%P" & set "s=!s:~%%P!" ))
endlocal &set "%~1=%len%"
exit /b

上述问题是点和退格字符将出现在重定向到文件的任何输出中。另一个可能的问题是,如果光标位于该行的最后一个字符位置,则该技术会失败,因为在点之后将自动发出换行符,然后退格键无法返回到前一行。

如果您必须将输出重定向到文件,或者您想要一个适用于所有情况的强大解决方案,那么 jeb 有一个非常聪明的解决方案:.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用

  • Process Explorer 报告的进程虚拟内存大小不合理

    在寻找内存泄漏时 我最近注意到 Process Explorer Microsoft Sysinternals v16 26 的 procexp exe 报告的虚拟内存值非常高 就像大约 2 1TB 其中我的笔记本电脑具有运行 Win 10
  • 如何在批处理文件中重复%random%命令?

    我想在有限的时间内重复批处理文件中的命令 此命令 echo random random random random random random random random random random 不是无限的 只为前任40次具有不同的数字
  • 在 Windows 应用程序中保存用户凭据

    是否有在 NET Windows 应用程序中存储凭据的最佳实践方法 无论是内置 API 还是只是推荐的加密算法 与 Tortoise SVN Spotify 和 Skype 一样 Edit 我的目的是使用一个从其身份验证服务返回令牌的 We
  • MFC中如何获取子菜单?

    我正在尝试获取一个子菜单 以便我可以在显示它之前对其进行更改 所以我创建了一个OnInitMenu 我的窗口的处理程序 我本来计划使用pMenu gt GetMenuItemInfo 获取子菜单 然而 这似乎行不通 为了找到我想要的菜单 我
  • 如何仅获取窗口的可见部分(Windows、gdi32、user32 等)

    我只想获取窗口中窗口的可见部分 作为一个区域 只想获取用户看到的区域 当然 以编程方式 这是一个例子 我有以下窗口组成 A C
  • 判断两个文件是否属于同一个卷

    我正在参与一些 ntfs 硬链接项目 我想知道如何确定两个文件 具有完整路径 是否属于同一卷 有几个选项可用于查找与文件关联的卷信息 找到两个文件的根路径 然后使用GetVolumeInformation http msdn microso
  • 完美批量转发参数

    我有一个小的 python 脚本 args py import sys print sys argv 我怎样才能写一个 bat将所有参数转发给该脚本的包装文件 为了从测试中消除我的 shell 我将调用它 import subprocess
  • 让 VBScript 检查文件名中包含特定单词的文件,然后查找并删除该文件

    我想知道是否有一种方法可以使我的 vbs 脚本可以检查并删除名称中含有特定单词的任何文件 这是我到目前为止所拥有的 x MsgBox Searching for any infected files 64 Search DIM filesy
  • 导出的 DLL 函数未按词法排序?

    嗯 今天我遇到了一个奇怪的事情 我不久前编写了自己的 GetProcAddress 版本 用于从远程进程获取函数地址 显然我花了很多时间阅读 PE 架构来找出解决这个问题的最佳方法 根据 PECOFF v8 规范 我认为这是最新的官方规范
  • 如何获取文件或目录的标准化日期/时间戳。在纯批处理脚本中?

    Windows 命令行中有没有一种方法可以检索标准化文件或目录的日期 时间戳 修改 创建 访问 独立于语言环境格式 例如 ISO8601 http www iso org iso home standards iso8601 htm 我发现
  • 如何使用 Windows API 检索 HD 供应商/序列号

    我说的是physical磁盘驱动器 而不是卷 分区 逻辑驱动器 所以通常建议GetVolumeInformation函数不适用于我的情况 确切地说 我直接使用尚未分区的磁盘 我通过打开它的句柄CreateFile功能 hDisk Creat
  • 在C中找到机器的IP地址?

    Windows下C盘如何获取本机IP地址 我无法在以下代码中获取我的机器的IP地址 include
  • 调用 close() 后大文件没有立即刷新到磁盘?

    我正在使用 python 脚本创建大文件 超过1GB 实际上有 8 个 在创建它们之后 我必须创建将使用这些文件的进程 该脚本如下所示 This is more complex function but it basically does
  • Powershell:别名和函数有什么区别?

    Im setting up my powershell profile to create aliases of commonly used commands On Microsoft s documentation https learn
  • 数据太长,导致列错误(包含国家字符)

    我必须移植一些DBS变成独立的MySQL版本 5 0 18运行于Windows 7 64 位我遇到了一个困扰我的问题 如果我尝试将任何国家 Unicode 字符插入varchar我收到错误 ERROR 1406 22001 Data too
  • 如何通过批处理文件将命令作为命令行参数传递

    我想将命令作为命令行参数从一个批处理文件传递到另一个批处理文件 e g 首先 bat call test bat echo hello world echo welcome 测试 bat set initialcommand 1 set m
  • 如何检查窗口在用户屏幕上是否完全可见?

    有没有办法检查 WinForm 在屏幕上完全可见 例如是否超出屏幕范围 我已经尝试使用 SystemInformation VirtualScreen 来实现此目的 只要虚拟屏幕是一个矩形 它就可以很好地工作 但是一旦它不是 例如 L 形的
  • 如何检查应用程序的另一个实例是否正在运行[重复]

    这个问题在这里已经有答案了 有人可以展示如何检查程序的另一个实例 例如 test exe 是否正在运行 如果是 则停止加载应用程序 如果存在该实例 想要一些严肃的代码吗 这里是 var exists System Diagnostics P
  • 适用于 Windows 的 PHP 支持的 GUI 应用程序

    我知道 PHP 是一种解释性语言 对于基于 Web 的事物来说 不是为在实际操作系统上运行 GUI 应用程序而设计的 但是有没有办法呢 基本上 是否有一个框架 系统允许我创建 本机 基本上是二进制文件 exe 看起来像带有本机控件和所有内容
  • Windows Defender 检测 Python EXE 为木马

    我制作了一个 Python 脚本 将 Windows 目录以 zip 形式邮寄给我 我使用 sched 模块添加了一个调度程序 每小时重复一次 我试图制作一个简单的同步应用程序供个人使用 在 Windows 启动时启动 我使用将其转换为 e

随机推荐