batch-file - 如何将要在批处理文件中跳过的行数增加 1?
问题描述
@echo off
cls
setlocal EnableDelayedExpansion
set "cmd=findstr /R /N "^^" Contas.csv | find /C ":""
for /f %%a in ('!cmd!') do set number=%%a
set /A number=%number%-1
对于每个交互,我希望它增加 1 跳过(从 1 开始,然后是 2、3、4、5 ...)
for /f "skip=1" %%U IN (Contas.csv) DO (
if not defined line set "line=%%U"
echo !line!
pause
)
解决方案
根据您的评论,并且SendKey
不是批处理文件命令,这是我对我认为您需要的方法的解释:
@Echo Off
Set "cmnd="%__APPDIR__%find.exe" /V /N ""<"Contas.csv""
SetLocal EnableDelayedExpansion
For /F "Skip=1Tokens=1*Delims=]" %%G In ('"!cmnd!"')Do (
Echo=%%H
"%__APPDIR__%timeout.exe" 1 /NoBreak>NUL
)
EndLocal
我已经跳过了第一行,使用Skip=1
,我假设它是你的 header,(如果你不想跳过标题行,那么 remove Skip=1
)。
此外,我习惯于Echo=
输出每一行,包括任何空行,(您可能希望在SendKey
此处使用)。
最后我使用Timeout
了1
第二个延迟,让您可以看到每行单独输出的效果(如果您不使用,则可能不需要Echo=
)。
如果您也想包含记录编号,则需要对
Delims
and进行小幅调整Echo=
:
@Echo Off
Set "cmnd="%__APPDIR__%find.exe" /V /N ""<"Contas.csv""
SetLocal EnableDelayedExpansion
For /F "Skip=1Tokens=1*Delims=[]" %%G In ('"!cmnd!"')Do (
Echo %%G %%H
"%__APPDIR__%timeout.exe" 1 /NoBreak>NUL
)
EndLocal
在这两种情况下,如果您对使用健壮的代码不感兴趣,您可以更改
"%__APPDIR__%find.exe"
为Find
"%__APPDIR__%timeout.exe"
Timeout
推荐阅读
- bash - 计算 Bash Shell 中每列的行数
- vb.net - 使用 sqlconnection 连接到服务器不起作用
- angular - 遍历从 API(Typescript)返回的 JSON“字典”
- android - 我需要使用android中的线程每秒增加一个数字
- azure-cosmosdb - Azure Cosmos db 性能问题以及如何改进
- sonarqube - 如何为 sonarqube 设置基本 url?
- php - 如何删除 ini_set() 一个会话在 PHP 7.3.9 中处于活动状态?
- sql-server - 使用带有 LIKE 的通配符从 SQL Server 检索数据
- perl - 根据逻辑添加行
- javascript - 范围很大时看不到 Highcharts x 轴