我正在遍历文本文档,以将URL分配给下载程序。如果该URL包含某些路径(例如/channels/
),则在下载前需要为其分配不同的设置。
for /F "tokens=*" %%A in (batch.txt) do (
echo %%A|find "/channel/"|find "/user/"
if errorlevel 0 echo %%A
else if echo %%A|find "/watch?"
if errorlevel 0 echo %%A
else if echo %%A|find "/playlist?"
if errorlevel 0 echo %%A
else echo FAIL
)
这不起作用,正在回显文件的每一行。我知道我的if else
结构是错误的,但是我不知道正确的语法。我还需要忽略以#
开头的行。我该怎么办?
答案 0 :(得分:0)
javascript
您需要根据自己的情况更改@ECHO OFF
SETLOCAL
SET "sourcedir=U:\sourcedir"
SET "filename1=%sourcedir%\q56820987.txt"
FOR /f "tokens=*eol=#" %%a IN (%filename1%) DO (
ECHO %%a|FIND "/channel/" >NUL
IF NOT ERRORLEVEL 1 ECHO found "/channel/" IN %%a
ECHO %%a|FIND "/watch?" >NUL
IF NOT ERRORLEVEL 1 ECHO found "/watch?" IN %%a
ECHO %%a|FIND "/playlist?" >NUL
IF NOT ERRORLEVEL 1 ECHO found "/playlist?" IN %%a
)
GOTO :EOF
的设置。清单使用适合我系统的设置。
我使用了一个名为sourcedir
的文件,其中包含一些虚拟数据用于测试。
除了错误的if / else语法外,如果q56820987.txt
为n 或大于n ,则IF ERRORLEVEL n
为TRUE。 errorlevel
因此始终为true。 IF ERRORLEVEL 0
是对errorlevel = 0的测试。 IF NOT ERRORLEVEL 1
也是如此,除了前者可以在一个块内使用而后者不能使用。