微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在'for findstr'循环中'if errorlevel'语句

我没有成功让以下工作。 一切正常,直到我试图在'for'循环中得到'findstr'的结果。 也许有这样做的更好的方法:在masters.csv文件中寻找%subnet%。 如果发现它,请将MSSvariables设置为“for”中的结果值。 如果它没有find一个值,它将分配一个静态值(孤立)。 提前感谢任何帮助!

for /f "tokens=1-2 delims=:" %%a in ('ipconfig^|find "IPv4"') do set ip=%%b set ip=%ip:~1% echo %ip% > ipaddress.txt pause for /F "tokens=1-3 delims=." %%a in ("%ip%") do set FirstThreeOctets=%%a.%%b.%%c @REM echo First three: %FirstThreeOctets% @echo off setlocal set subnet=%FirstThreeOctets% echo %subnet% for /f "tokens=2 delims=," %%A in ('findstr /r "^%subnet%," "\serverAPPSappnameupdatesmasters.csv"') do goto OrphanCheck @REM if errorlevel ==1 goto Orphan do set MSS=%%A @REM echo %MSS% @REM goto 64installcheck :OrphanCheck if errorlevel==1 goto Orphan Goto NoOrphan :NoOrphan set MSS=%%A Goto 64installcheck :Orphan set MSS=ORPHAN echo %MSS% pause

通过batch file移除特定的子文件

由于未初始化的数据指针,导致SET / P失败?

基本的Windows脚本,以保持节点运行

运行robocopy bat将整个驱动器复制到另一个驱动器

复制最新/最新文件夹窗口的内容

当你跑步

for /f "tokens=2 delims=," %%A in ( 'findstr /r "^%subnet%," "\serverAPPSappnameupdatesmasters.csv"' ) do goto OrphanCheck

有两件事情可以发生。

如果findstr没有找到字符串,for循环中的代码不会被执行,并且到达下一行,但是这行不能访问由findstr生成错误级别,它会看到for命令的错误级别(?)。

如果findstr发现字符串,goto被执行,但相同的情况发生。

当检测到错误级别的行被触发时,就会出现另一个问题

if errorlevel==1

一个有效的构造,但它并没有做什么接缝。 它正在测试字符串errorlevel是否等于字符串1 。 正确的sintax应该是

if errorlevel 1 ....

要么

if %errorlevel%==1

但是如图所示,当到达该行时,错误级别将不会反映findstr命令的错误

三行后面的错误

set MSS=%%A

一旦for命令结束,其可替换参数没有任何值。

为您的代码的简化版本

for /f "tokens=3-6 delims=.: " %%a in ('ipconfig ^| find "IPv4"') do ( set "ip=%%a.%%b.%%c.%%d" set "subnet=%%a.%%b.%%c" ) >"ipaddress.txt" echo %ip% for /f "tokens=2 delims=," %%a in ( 'findstr /b /c:"%subnet%," "\serverAPPSappnameupdatesmasters.csv"' ) do ( set "MSS=%%a" goto 64installcheck ) set "MSS=ORPHAN" echo %MSS% pause

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐