irsemi
Junior Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору smartiom Для создания псевдо-случайной строки можно использовать такой скрипт (JS): Код: // Генератор псевдо-случайной строки // Использование и аргументы: // cscript.exe //NoLogo psrandom.js 16 10 "012abc~#@ " // 1-й: число символов, от 1 // 2-й: система счисления, 2-36 // 3-й: набор символов, вместо [0-9a-z] (необяз.) // При этом 2-й аргумент задает кол-во исп. символов, 0=все var ar = WScript.Arguments; for(var i=0, a=[]; i<ar.length; i++) a.push(ar(i)); var l = +a[0] || 64; var p = a[2] || ''; var r = +a[1] || p.length || 16; if(!p && r>36) r = 36; for(var s=''; s.length<l; ) { var n = Math.floor(Math.random()*r); if(!p) s += n.toString(36); else s += p.charAt(n); } WScript.Echo(s); | То же самое, только внедренное в bat (само распакуется в файл psrandom.js): Код: @( echo // Генератор псевдо-случайной строки echo // Использование и аргументы: echo // cscript.exe //NoLogo psrandom.js 16 10 ^"012abc~#@ ^" echo // 1-й: число символов, от 1 echo // 2-й: система счисления, 2-36 echo // 3-й: набор символов, вместо [0-9a-z] ^(необяз.^) echo // При этом 2-й аргумент задает кол-во исп. символов, 0=все echo. echo var ar = WScript.Arguments; echo for^(var i=0, a=[]; i^<ar.length; i++^) a.push^(ar^(i^)^); echo. echo var l = +a[0] ^|^| 64; echo var p = a[2] ^|^| ''; echo var r = +a[1] ^|^| p.length ^|^| 16; echo if^(!p ^&^& r^>36^) r = 36; echo. echo for^(var s=''; s.length^<l; ^) { echo var n = Math.floor^(Math.random^(^)*r^); echo if^(!p^) s += n.toString^(36^); echo else s += p.charAt^(n^); echo } echo WScript.Echo^(s^); ) >"psrandom.js" | Вызов с записью в переменную %erand%: Код: for /f %%R in ('cscript.exe //NoLogo psrandom.js 16 10') do @set erand=%%R | 16 знаков, десятичное число. Примеры вызова: Код: cscript.exe //NoLogo psrandom.js 16 36 d5kxb06l5miaw4xs cscript.exe //NoLogo psrandom.js 32 6 ""012abc~#@ " 0b2aa22c0b1a121111acb1aacb0110a2 cscript.exe //NoLogo psrandom.js 10 0 ""012abc~#@ " 0a1@c~cb#b cscript.exe //NoLogo psrandom.js 50 1 "XYZ" XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX |
|