我有这个 .bat 文件,我想将其限制为 gmname.txt 中的 200 行。基本上,当为每一行运行这个 .bat 文件时,假设我在 gnmname.txt 中有 300 行,我只想启动 UpMe.bat 200 行。我知道这应该很简单,但感谢任何帮助。
for /f "tokens=1" %%k in (gmname.txt) do start /MIN UpMe.bat %%k
我有这个 .bat 文件,我想将其限制为 gmname.txt 中的 200 行。基本上,当为每一行运行这个 .bat 文件时,假设我在 gnmname.txt 中有 300 行,我只想启动 UpMe.bat 200 行。我知道这应该很简单,但感谢任何帮助。
for /f "tokens=1" %%k in (gmname.txt) do start /MIN UpMe.bat %%k
如果我了解您想为文本文件的 X 行处理命令?那么这里是代码:
@Echo off
Setlocal enabledelayedexpansion
Set /A "Limit=200"
for /F "Usebackq tokens=1" %%k in (
"gmname.txt"
) do (
Set /A "Line+=1"
If !LINE! LEQ !LIMIT! (start /MIN UpMe.bat %%k)
)
Pause&Exit
如果“gmname.txt”的行数超过 200 行,这应该会启动 upme.bat。
@echo off
for /f %%a in ('find /c /v "" ^< "gmname.txt" ') do if %%a GTR 200 call upme.bat
http://ss64.com/nt/for.html展示了如何为输入文件的每一行运行一个代码块
SET count=1
for /f "tokens=1" %%k in (gmname.txt) do (
echo %count% : %%k
set /a count+=1 )
您可以使用这种方法并对其进行调整以在count
达到 200 多个时退出批处理文件
否则,您可以调用子例程而不是使用代码块,此链接显示
http://ss64.com/nt/call.html
尝试这个:
for /f "tokens=1*delims=:" %%k in ('findstr /n $ gmname.txt') do if %%k leq 200 start /MIN UpMe.bat %%l
中不应有空行gmname.txt
。