এখানে একটি আলোচনা রয়েছে যে আপনি নিজের উদ্দেশ্যে মানিয়ে নিতে পারেন।
@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!
TheOutcaste উপরোক্ত ব্যাখ্যা:
আমি এটিকে সংশোধন করেছি যাতে আপনি সহজেই দৈর্ঘ্যটি নির্দিষ্ট করতে পারেন এবং কোডের অন্য কোনও অংশ পরিবর্তন না করে অক্ষর যুক্ত করতে বা সরাতে পারেন।
উদাহরণস্বরূপ, আপনি 0 এবং O উভয় (শূন্য এবং বড় হাতের অক্ষর), বা 1 এবং l (এক এবং লোয়ারকেস এল) উভয়ই ব্যবহার করতে চাইবেন না।
আপনি এই অক্ষরগুলি বাদ দিয়ে বিরামচিহ্ন ব্যবহার করতে পারেন:
! % ^ & < >
আপনি ব্যবহার করতে পারেন ^
এবং %
, তবে অবশ্যই অবশ্যই _Alphanumeric
এটিকে ভেরিয়েবলে ^^ বা twice হিসাবে দ্বিগুণ লিখতে হবে %%
। তবে, আপনি যদি ফলাফলটি ( _RndAlphaNum
) পরে ব্যাচ ফাইলে (পর্দার প্রতিধ্বনি ছাড়া অন্য) ব্যবহার করতে চান তবে তাদের বিশেষ হ্যান্ডলিংয়ের প্রয়োজন হতে পারে।
এমনকি আপনি কোনও স্থান ব্যবহার করতে পারেন, যতক্ষণ না এটি স্ট্রিংয়ের শেষ অক্ষর নয়। যদি এটি উত্পন্ন স্ট্রিংয়ের শেষ চরিত্র হিসাবে শেষ হয় তবে এটি ব্যবহার করা হবে না, সুতরাং আপনার কেবল 7 টি অক্ষর থাকবে।