यहाँ एक चर्चा है कि आप अपने उद्देश्यों के लिए अनुकूलित कर सकते हैं।
@Echo Off
Setlocal EnableDelayedExpansion
Set _RNDLength=8
Set _Alphanumeric=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789
Set _Str=%_Alphanumeric%987654321
:_LenLoop
IF NOT "%_Str:~18%"=="" SET _Str=%_Str:~9%& SET /A _Len+=9& GOTO :_LenLoop
SET _tmp=%_Str:~9,1%
SET /A _Len=_Len+_tmp
Set _count=0
SET _RndAlphaNum=
:_loop
Set /a _count+=1
SET _RND=%Random%
Set /A _RND=_RND%%%_Len%
SET _RndAlphaNum=!_RndAlphaNum!!_Alphanumeric:~%_RND%,1!
If !_count! lss %_RNDLength% goto _loop
Echo Random string is !_RndAlphaNum!
TheOccaste उपरोक्त बताते हैं:
मैंने इसे संशोधित किया है ताकि आप आसानी से लंबाई को निर्दिष्ट कर सकें और कोड के किसी अन्य भाग को बदलने के बिना वर्णों को जोड़ या हटा सकें।
उदाहरण के लिए, आप 0 और O (शून्य और अपरकेस ओ), या 1 और एल (एक और लोअरकेस एल) दोनों का उपयोग नहीं करना चाह सकते हैं।
आप इन वर्णों को छोड़कर विराम चिह्न का उपयोग कर सकते हैं:
! % ^ & < >
आप उपयोग कर सकते हैं ^
और %
, लेकिन उन्हें _Alphanumeric
चर में ^ ^ या के रूप में दो बार दर्ज करना होगा %%
। हालाँकि, यदि आप परिणाम ( _RndAlphaNum
) को बाद में बैच फ़ाइल (स्क्रीन से इको करने के अलावा) में उपयोग करना चाहते हैं, तो उन्हें विशेष हैंडलिंग की आवश्यकता हो सकती है।
तुम भी एक अंतरिक्ष का उपयोग कर सकते हैं, जब तक कि यह स्ट्रिंग में अंतिम चरित्र नहीं है। यदि यह उत्पन्न स्ट्रिंग में अंतिम वर्ण के रूप में समाप्त होता है, तो इसका उपयोग नहीं किया जाएगा, इसलिए आपके पास केवल 7 वर्ण होंगे।