我一直沒有成功執行以下操作。一切工作,直到我試圖在'for'循環中獲得'findstr'的結果。也許有更好的方法:在masters.csv文件中查找%subnet%。如果發現它,請將MSS變量設置爲「for」中的結果值。如果它沒有找到一個值,它將分配一個靜態值(孤立)。提前感謝任何幫助!如果在'for findstr'循環中出現'errorlevel'語句
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%," "\\server\APPS\appname\updates\masters.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
你看到的任何錯誤的簡化版本? –
沒有錯誤。無論錯誤級別如何,它都只是一個或另一個。 – WettDawg
'如果errorlevel == 1'絕對不是你想要的。它是有效的語法,但將字符串「errorlevel」與字符串「1」進行比較。你希望'if%errorlevel%== 1'(如果你想檢查返回值'1')或'如果錯誤級別1'(如果你想檢查任何大於'0'的返回值)。 –