我没有成功让以下工作。 一切正常,直到我试图在'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脚本,以保持节点运行
当你跑步
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] 举报,一经查实,本站将立刻删除。