在批处理脚本中获取txt文件的第n项

在批处理脚本中获取txt文件的第n项,第1张

概述在批处理脚本获取txt文件的第n项

我在每一行都有一个不同的项目列表,我们只是说这个例子是他们的成果:

echo apples>c:tempfruits.txt echo bananas>>c:tempfruits.txt echo pears>>c:tempfruits.txt echo strawberrIEs>>c:tempfruits.txt echo peaches>>c:tempfruits.txt

我要求客户通过input所需水果的行号来select这些。 接下来,我要回应他们select的成果。 一个水果,我得到它的工作:

set /p var=which fruit? %=% set /a var-=1 for /f "delims=" %%a in ('more +%var% c:tempfruits.txt') DO ( echo you have chosen: %%a goto :leave ) :leave

但是,我希望用户能够select多个水果,例如香蕉和梨的2,3。 我似乎没有得到这个工作。 我有最好的猜测是这样的:

for %%i in (%var%) do for /f "delims=" %%a in ('more +%%ic:tempfruits.txt') DO ( echo you have chosen: %%a )

但是,我不知道在哪里放置goto语句来限制“more”语句的结果,如果这是可能的话。 我该如何解决这个问题,还是有更好的方法来做到这一点?

在哪些windows系统上默认禁用Command Extensions?

从命令行执行远程bat文件时传递Y / N

从IPCONfig / all,windows批处理parsing第二个DNS

如何将一个目录树的内容移动到另一个目录树的内容?

设置一个环境variables

如何在连接后终止OpenSSL s_clIEnt

批量在networking文件夹中创build文件夹

通过windowsbatch file在另一个string之后追加一个string

batch file连接和断开VPN连接

重命名文件模式窗口批处理

@echo off setlocal enableextensions enabledelayedexpansion ( echo apples echo bananas echo pears echo strawberrIEs echo peaches echo kiwis echo oranges echo cherrIEs ) > fruits.txt for /f "tokens=1,* delims=:" %%f in ('findstr /n "^" fruits.txt') do echo %%f - %%g echo. set /p "select=select :" echo. set "filter=" for %%s in (%select%) do set "filter=!filter!/c:"%%s:" " for /f "tokens=1,* delims=:" %%f in ( 'findstr /n "^" fruits.txt ^| findstr /b /l %filter%' ) do echo %%g

GOTO可以打破你for命令。相反,我已经包装你的代码到另外的普通循环,你可以输入你想分开的数字标准分隔符.Eg测试2,3,5 ; 5=2=6 1;6;2 ; 5 6 2或组合。

@echo off ( echo apples echo bananas echo pears echo strawberrIEs echo peaches echo kiwis echo oranges echo cherrIEs ) > fruits.txt set /p var=which fruit? %=% break>"%temp%empty" setlocal enableDelayedExpansion echo|set /p"=you have chosen: " for %%V in (%var%) do ( set /a chooser=%%V set /a ender=chooser-1 for /f "delims=" %%a in ('fc "%temp%empty" "fruits.txt" /lb !chooser! /t ^|more +4 ^| findstr /B /E /V "*****" ^|more +!ender!') DO ( echo|set /p"= %%a " ) ) endLocal del /q /f "%temp%empty"

这个fc "%temp%empty" "fruits.txt" /lb !N! /t |more +4 | findstr /B /E /V "*****" fc "%temp%empty" "fruits.txt" /lb !N! /t |more +4 | findstr /B /E /V "*****" fc "%temp%empty" "fruits.txt" /lb !N! /t |more +4 | findstr /B /E /V "*****"将显示文件的前N行(将其与空文件进行比较并显示差异)。可以跳过包含"*****"但在这种情况下,这不是一个问题。 和|more +!N-1! 其余的行被截断。 所以它会遍历数字,并会显示每一行。

总结

以上是内存溢出为你收集整理的在批处理脚本中获取txt文件的第n项全部内容,希望文章能够帮你解决在批处理脚本中获取txt文件的第n项所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1287531.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-09
下一篇 2022-06-09

发表评论

登录后才能评论

评论列表(0条)

保存