Vấn đề của bạn không phải là goto, lỗi của nó đòi hỏi phải xử lý đặc biệt, nó không giống như một biến môi trường bình thường. Thử nghiệm duy nhất bạn có thể làm với errorlevel là kiểm tra xem nó có lớn hơn hoặc bằng giá trị hay không.
vì vậy bạn phải kiểm tra errorlevel giá trị từ cao nhất đến thấp nhất bởi vì nếu errorlevel 1 sau đó if errorlevel 1
sẽ là đúng, nhưng if errorlevel 0
sẽ cũng là đúng
setlocal
set /A sample =1
:first
type C:\test.txt | find "inserted"
if errorlevel 1 goto exam
if errorlevel 0 goto test
:test
echo "testloop" >> C:\testloop.txt
set /A sample = %sample% + 1
if %sample% LEQ 4 goto first
:exam
echo "exam loop" >> C:\examloop.txt
endlocal
nếu bạn có phần mở rộng lệnh được kích hoạt, và có không có biến môi trường nào được gọi là ERRORLEVEL (phân biệt chữ hoa chữ thường). Sau đó, về lý thuyết bạn có thể sử dụng% ERRORLEVEL% như một biến môi trường bình thường. Vì vậy, đây cũng nên làm việc
setlocal EnableExtensions
set /A sample =1
:first
type C:\test.txt | find "inserted"
if %errorlevel% EQU 1 goto exam
if %errorlevel% EQU 0 goto test
:test
echo "testloop" >> C:\testloop.txt
set /A sample = %sample% + 1
if %sample% LEQ 4 goto first
:exam
echo "exam loop" >> C:\examloop.txt
Nguồn
2010-02-04 07:26:59
Stephan, nhờ t o được định dạng đúng, không phải lý do tại sao định dạng inproper mã bưu điện. – user9133538
vì bạn không định dạng bất cứ điều gì. Xem [tại đây] (https://stackoverflow.com/editing-help) để biết cách thực hiện. – Stephan