この .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
。