2013-04-26 50 views
2

我有這個.bat文件,我想將其限制爲gmname.txt中只有200行。基本上,當這個.bat文件爲每一行運行時,比方說我在gnmname.txt中有300行,我想只啓動UpMe.bat爲200.我知道這應該很簡單,但任何幫助表示讚賞。將.bat文件限制在txt文件中只有200行

for /f "tokens=1" %%k in (gmname.txt) do start /MIN UpMe.bat %%k 
+0

請**不要**添加標語或簽名到您的帖子或他們將被刪除。 – 2013-04-27 02:29:48

回答

1

如果我明白你想處理一個文本文件的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 
0

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

+1

這不起作用。在代碼塊內部,你需要'延遲擴展'和'!變量!'。 – Endoro 2013-04-27 02:22:58

0

試試這個:

for /f "tokens=1*delims=:" %%k in ('findstr /n $ gmname.txt') do if %%k leq 200 start /MIN UpMe.bat %%l 

不應該有空洞線gmname.txt

0

如果「gmname.txt」有超過200行,這應該啓動upme.bat。

@echo off 
for /f %%a in ('find /c /v "" ^< "gmname.txt" ') do if %%a GTR 200 call upme.bat