从文件中的特定行搜索和执行

时间:2014-10-23 00:03:39

标签: batch-file command-line-arguments command-prompt batch-processing

我的文件PublicHolidays.txt,下面是内容(一行中的一个html脚本)。 Windows 7

A.html
B.html
C.html
D.html

如果用户输入B.html(忽略大小写),那么我的批处理文件应该从B.html开始执行直到文件结束,即D.html

我对这篇文章进行了评论,但它似乎不是help

概述:我需要编写一个批处理作业,该作业执行txt文件中指定的所有内容,或者接受用户输入并从该行执行命令(基本上是第一次搜索文件中的字符串并从该行开始执行)。

@echo OFF
Echo **********************************************************************
@setlocal enableextensions enabledelayedexpansion    
 SET TOTAL=0
 FOR /F "usebackq tokens=*" %%I IN (PublicHolidays.txt) do (
SET LN=%%I
FOR %%J IN ("!LN!") do (
    FOR /F %%K IN ('ECHO %%J ^| FIND /I /C ".html"') DO (
        @SET /A TOTAL=!TOTAL!+%%K
    )
)
 )

setLocal EnableDelayedExpansion

ECHO *************Total !TOTAL! *************
Echo.

SET /p ScriptName=Please enter the Script Name :
IF [%ScriptName%] EQU [] GOTO ScriptName

for /f "tokens=%ScriptName% skip=%line% delims=," %%j in (PublicHolidays.txt) do (
setlocal enabledelayedexpansion
CALL specificCmd -s -i %ScriptName% >> outout.txt
 )
Pause

1 个答案:

答案 0 :(得分:1)

@ECHO OFF
SETLOCAL
SET /p ScriptName=Please enter the Script Name :

for /f "tokens=1*delims=." %%j in (q26519180.txt) do (
 IF /i "%scriptname%"=="%%j" SET "scriptname=" 
 IF NOT DEFINED scriptname ECHO(call specificCmd -s -i %%j.%%k
 )
GOTO :EOF

这应该适合你。

我使用了一个名为q26519180.txt的文件,其中包含我的测试数据。

所需命令仅用于ECHO以用于测试目的。 在您确认命令正确后,将ECHO(call更改为call以实际执行包含文件的过程。

另请注意,我已删除重定向以使我的测试更容易。