[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

求助批处理生成不重复的3位字符

求助生成不重复的1-4位字符(大小写字母、数字),并输出TXT文件;
文件可能会比较大,最好位数可调。win10系统。
感谢10元。

回复 16# newgain
out.txt
代码里有写,你不会看一下?或者放到一个空文件夹里运行
提供bat代写,为你省时省力省事,支付宝扫码头像支付
微信: unique2random

TOP

回复 17# newgain
不麻烦了,算是免费赠送好了。

TOP

回复 13# qixiaobin0715

谢谢,发我一下微信收款码

TOP

回复 14# zaqmlp


    找不到输出的文件在哪

TOP

我大PowerShell没资格参与这问题?

TOP

回复 10# newgain
  1. <# :
  2. cls&echo off&cd /d "%~dp0"&set "current=%cd%"
  3. path %SYSTEMROOT%\System32\WindowsPowerShell\v1.0;%path%
  4. echo;waiting...
  5. powershell -NoProfile -ExecutionPolicy bypass "Get-Content -literal \"%~f0\"|Out-String|Invoke-Expression"
  6. echo;done
  7. pause
  8. exit
  9. #>
  10. $current=($env:current).trimend('\');
  11. $outfile=$current+'\out.txt';
  12. $fs=New-Object System.IO.FileStream($outfile, [System.IO.FileMode]::Create);
  13. $sw=New-Object System.IO.StreamWriter($fs, [Text.Encoding]::GetEncoding('GB2312'));
  14. $arr=New-Object -TypeName System.Collections.ArrayList;
  15. $charlist=@(97..122)+@(65..90)+@(48..57);
  16. for($i=1;$i -le 4;$i++){
  17.     $brr=New-Object -TypeName System.Collections.ArrayList;
  18.     if($arr.count -eq 0){
  19.         for($j=0;$j -lt $charlist.length;$j++){
  20.             $c=([char]$charlist[$j]).toString();
  21.             $sw.WriteLine($c);
  22.             [void]$brr.add($c);
  23.         }
  24.     }else{
  25.         for($j=0;$j -lt $arr.count;$j++){
  26.             for($k=0;$k -lt $charlist.length;$k++){
  27.                 $c=([char]$charlist[$k]).toString();
  28.                 $s=$arr[$j]+$c
  29.                 $sw.WriteLine($s);
  30.                 [void]$brr.add($s);
  31.             }
  32.         }
  33.     }
  34.     $sw.Flush();
  35.     $arr=$brr;
  36. }
  37. $sw.Close();
  38. $fs.Close();
复制代码
提供bat代写,为你省时省力省事,支付宝扫码头像支付
微信: unique2random

TOP

回复 1# newgain
12楼代码发上来有笔误,现已修改。

TOP

本帖最后由 qixiaobin0715 于 2023-9-7 09:54 编辑
  1. @echo off
  2. set str1=0 1 2 3 4 5 6 7 8 9
  3. set str2=a b c d e f g h i j k l m n o p q r s t u v w x y z
  4. set str3=A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
  5. set str=%str1% %str2% %str3%
  6. (for %%i in (%str%) do (
  7.     echo,%%i
  8.     for %%j in (%str%) do (
  9.         echo,%%i%%j
  10.         for %%k in (%str%) do (
  11.             echo,%%i%%j%%k
  12.             for %%l in (%str%) do (
  13.                 echo,%%i%%j%%k%%l
  14.             )
  15.         )
  16.     )
  17. ))>1.txt
  18. pause
复制代码

TOP

本帖最后由 wanghan519 于 2023-9-7 09:29 编辑

python最简单,因为有itertools,
  1. import itertools
  2. s = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'
  3. with open(r'a.txt','w') as f:
  4.     for i in range(1, 5):
  5.         for j in itertools.permutations(s, i):
  6.             f.write(''.join(j)+'\n')
复制代码
前两天刚提过的nushell可以方便的写sql,似乎sql写递归也很方便
  1. with recursive c as (
  2. select x, 1 n from t
  3. union all
  4. select c.x || t.x, c.n + 1
  5. from c join t
  6. where c.n < 4 and c.x not like '%' || t.x || '%'
  7. )
  8. select x from c;
复制代码
或者就像上面那样再试试awk递归怎么写,上面那是列出所有组合,没考虑全排列

TOP

回复 8# zaqmlp


    可以输出所有的么1~4位组合么

TOP

回复 8# zaqmlp

只输出100多个,这个数量不全

TOP

回复 5# newgain

不要手动选中复制,直接点击帖子自带的复制按钮
    https://pan.baidu.com/s/1SIKi0VaD3Tlo9R3HJO0vcA?pwd=4t45
提供bat代写,为你省时省力省事,支付宝扫码头像支付
微信: unique2random

TOP

回复 6# zaqmlp


   

TOP

回复 5# newgain

核对代码,确保复制完整
提供bat代写,为你省时省力省事,支付宝扫码头像支付
微信: unique2random

TOP

返回列表