Pertanyaan Anda agak tidak jelas, tapi saya berasumsi Anda ingin program menampilkan kesalahan secara acak. Untuk ini, Anda dapat menggunakan generator nomor acak.
set /a rndm=%random% * 10 / 32768 + 1
Kode ini akan membuat variabel yang disebut "rndm" (ini tidak harus disebut rndm, Anda dapat memberi nama ini apa pun yang Anda suka), yang merupakan angka acak antara 1 dan 10. Jika Anda ingin kumpulan yang lebih besar atau lebih kecil dari kemungkinan angka, Anda dapat mengubah 10 dalam kode menjadi apa pun yang Anda inginkan. Jadi, jika Anda menginginkan angka acak antara 1 dan 3, Anda akan melakukan ini:
set /a rndm=%random% * 3 /32768 + 1
Anda dapat menggunakan ini untuk menghasilkan peluang acak dari kesalahan yang terjadi. Jika Anda ingin memiliki peluang 1 dalam 10 keluar dari loop, membersihkan layar dan memasukkan loop yang berbeda, Anda ingin kode Anda terlihat seperti ini:
@echo off
:start
echo %random%%random%%random%%random%
set /a rndm=%random% * 10 / 32768 + 1
if %rndm% == 1 goto errorstart
goto start
:errorstart
cls
:error
echo !!!!!!!!!!!!
goto error
Saat loop dijalankan, program menghasilkan angka acak antara 1 dan 10. Tepat setelah itu memeriksa apakah nomor yang dihasilkan adalah 1. Jika bukan 1, ia melanjutkan loop. Jika ya, itu akan melompat ke label "errorstart". Perintah di bawah label mulai kesalahan membersihkan layar. Program kemudian memasuki loop kesalahan, di mana ia mengulangi tanda seru hingga program ditutup.
Kode ini seharusnya memberi Anda efek yang Anda cari, tetapi peluang 1 banding 10 agak terlalu tinggi untuk program yang bekerja secepat ini, jadi Anda mungkin ingin mengubahnya menjadi 1 dalam 1000 atau 1 dalam 10.000. Itu akan membuat loop awal bertahan lebih lama sebelum loop sekunder mulai.