标题: [文本处理] [已解决]批处理如何根据指定文本是否含有指定关键词/字符串执行不同操作? [打印本页]
作者: cnlyl 时间: 2016-5-2 20:10 标题: [已解决]批处理如何根据指定文本是否含有指定关键词/字符串执行不同操作?
本帖最后由 cnlyl 于 2016-5-8 09:55 编辑
正在学习批处理,disable_activation.cmd是防止Adobe acrobat 认证回弹修改hosts文件,原来的程序是一行行重复,我想改成for语句,但是,IF %ERRORLEVEL% NEQ 0 判断好像不正确,%ERRORLEVEL% 不是 FIND /C /I "%%N.adobe.com" %WINDIR%\system32\drivers\etc\hosts返回的ERRORLEVEL,请大侠指点迷津,先谢谢了!
::disable_activation.cmd
For %%N in (lm.licenses lmlicenses.wip4 3dns-2 3dns-3 activate activate-sea activate-sjc0 adobe-dns adobe-dns-2 adobe-dns-3 ereg hl2rcv practivate wip3 activate.wip3 ereg.wip3 wwis-dubc1-vip60) Do (
FIND /C /I "%%N.adobe.com" %WINDIR%\system32\drivers\etc\hosts
IF %ERRORLEVEL% NEQ 0 (
ECHO.
ECHO 127.0.0.1 %%N.adobe.com>>%WINDIR%\system32\drivers\etc\hosts
)
)
作者: cnlyl 时间: 2016-5-2 20:27
回复 1# cnlyl
版主:我是 刚注册的新人,添乱了。不知道何处违规,请版主明示。谢谢!
作者: cnlyl 时间: 2016-5-8 09:54
本帖最后由 cnlyl 于 2016-5-8 10:29 编辑
新人首次注册发帖求助,被莫名扣分、打脸,无人回帖。求人不如求己,现已自行解决。
捣鼓%ERRORLEVEL%不通,另辟蹊径,用FINDSTR结果转向存储为%TEMP%\Tmp.txt,如果存储文件为0字节,说明查找的字符串不存在,替代%ERRORLEVEL%,问题自行粗糙地解决。- ::disable_activation.cmd
- For %%N in (3dns-2 3dns-3 activate activate.wip3 activate-sea activate-sjc0 adobe-dns adobe-dns-2 adobe-dns-3 ereg ereg.wip3 hl2rcv lm.licenses lmlicenses.wip4 practivate wip3 wwis-dubc1-vip60) Do (
- FINDSTR "%%N.adobe.com" %WINDIR%\system32\drivers\etc\hosts >%TEMP%\Tmp.txt
- For %%F In (%TEMP%\Tmp.txt) Do (If %%~zF GTR 0 Del %TEMP%\Tmp.txt)
- IF Exist %TEMP%\Tmp.txt (
- ECHO.
- ECHO 127.0.0.1 %%N.adobe.com>>%WINDIR%\system32\drivers\etc\hosts
- Del %TEMP%\Tmp.txt
- )
- )
- pause
复制代码
本来不想再回复了,一走了之,但想了想,君子之道,不能小人一般。既然在此论坛注册过,即使以后不再光顾论坛,萤火虫般的我,也要发光,给有类似疑问的后来人一启示。拜拜!
作者: codegay 时间: 2016-5-8 19:16
论坛都有一个叫做版规的东西。
虽然我也不看。但是我知道有。
大多数用户提问完就不会再登录了。多一个不多,少一个不少。
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |