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

[文本处理] 求:怎么给bat设置一个使用权限,见内容

我写了一个程序

想给他添加一个使用权限:
随机添加5个数字。
然后使用者把数字反馈给我
我给出使用权限数字
他输入后既可以使用,然后每次打开都不需要再输入权限数字

能明白吗。。。。。?

例如:
@echo off
set S1=12345(这是随机的数字,正确写法↓)
::set num=%random:~0,3%%random:~0,2%
echo 请反馈给管理员获取使用权限:%S1%
set /p S2=请输入授权码:

就这样的。。。。设置一个权限

下次打开自己就可以运行,不再需要输入权限数字,输入过权限数字的就可以直接运行了
本白不明白,故请教之              谢谢!

这种是第三方还是批处理编写的?见内容

如果是批处理请写一些代码让我学习模仿


我输入授权码后,再次打开就不用再输入了

TOP

低端方法有很多,授权码输入正确之后,可以生成一个临时文件到某个目录,或者重定向一段代码到%0.再次打开批处理时候,判断一下就可以。

TOP

回复 3# taofan712


不是很明白   
可否写一个小案例。。。。

TOP

本帖最后由 taofan712 于 2017-3-14 16:13 编辑

回复 4# 渣白
  1. @echo off
  2. call :check 2>nul
  3. if defined key goto main
  4. :pwd
  5. cls
  6. set /p input= 输入授权码
  7. if not defined input goto pwd
  8. if not "%input%"=="shouquanma" goto pwd
  9. (echo;
  10. echo;:check
  11. echo;set key=123
  12. echo;goto :eof
  13. echo;
  14. )>>%0
  15. :main
  16. echo;hello word
  17. echo.&pause&exit
复制代码
我是这个意思,当输入正确号码后,添加一点记号到本bat,下次启动时检查这个记号,有的话就不用再输入你那授权码了

TOP

回复 5# taofan712


    嗯嗯,谢谢
我怕的是别人把那个记事本文档给删了。正在找其他方法

TOP

回复 6# 渣白


    不会啊,楼上意思是把记号写进你的那个批处理脚本,没有其他记事本文件。

TOP

回复 5# taofan712


    真心谢谢。我反复斟酌,懂了

TOP

回复 7# taofan712


    嗯嗯,是我开始没反应过来,谢谢了(ง •_•)ง

TOP

回复 5# taofan712


    @echo off
setlocal enabledelayedexpansion
set /p "passworld=破解码:"
set temp1=%passworld:~0,1%
set temp2=%passworld:~1,1%
set temp3=%passworld:~2,1%
set temp4=%passworld:~3,1%
set temp5=%passworld:~4,1%
set temp6=%passworld:~5,1%
set temp7=%passworld:~6,1%
set temp8=%passworld:~7,1%
set temp9=%passworld:~8,1%
set temp10=%passworld:~9,1%
set temp11=%passworld:~10,1%
set temp12=%passworld:~11,1%
set temp13=%passworld:~12,1%
set temp14=%passworld:~13,1%
set temp15=%passworld:~14,1%
set temp16=%passworld:~15,1%
set temp17=%passworld:~16,1%
set temp18=%passworld:~17,1%
set temp19=%passworld:~18,1%
set temp20=%passworld:~19,1%
:S1
setlocal enabledelayedexpansion
for /l %%i in (1,1,20) do (
set tempx=!temp%%i!
if "!tempx!"=="a" set temp%%i=10
if "!tempx!"=="A" set temp%%i=10
if "!tempx!"=="b" set temp%%i=11
if "!tempx!"=="B" set temp%%i=11
if "!tempx!"=="c" set temp%%i=12
if "!tempx!"=="C" set temp%%i=12
if "!tempx!"=="d" set temp%%i=13
if "!tempx!"=="D" set temp%%i=13
if "!tempx!"=="e" set temp%%i=14
if "!tempx!"=="E" set temp%%i=14
if "!tempx!"=="f" set temp%%i=15
if "!tempx!"=="F" set temp%%i=15
if "!tempx!"=="g" set temp%%i=16
if "!tempx!"=="G" set temp%%i=16
if "!tempx!"=="h" set temp%%i=17
if "!tempx!"=="H" set temp%%i=17
if "!tempx!"=="i" set temp%%i=18
if "!tempx!"=="I" set temp%%i=18
if "!tempx!"=="j" set temp%%i=19
if "!tempx!"=="J" set temp%%i=19
if "!tempx!"=="k" set temp%%i=20
if "!tempx!"=="K" set temp%%i=20
if "!tempx!"=="l" set temp%%i=21
if "!tempx!"=="L" set temp%%i=21
if "!tempx!"=="m" set temp%%i=22
if "!tempx!"=="M" set temp%%i=22
if "!tempx!"=="n" set temp%%i=23
if "!tempx!"=="N" set temp%%i=23
if "!tempx!"=="o" set temp%%i=24
if "!tempx!"=="O" set temp%%i=24
if "!tempx!"=="p" set temp%%i=25
if "!tempx!"=="P" set temp%%i=25
if "!tempx!"=="q" set temp%%i=26
if "!tempx!"=="Q" set temp%%i=26
if "!tempx!"=="r" set temp%%i=27
if "!tempx!"=="R" set temp%%i=27
if "!tempx!"=="s" set temp%%i=28
if "!tempx!"=="S" set temp%%i=28
if "!tempx!"=="t" set temp%%i=29
if "!tempx!"=="T" set temp%%i=29
if "!tempx!"=="u" set temp%%i=30
if "!tempx!"=="U" set temp%%i=30
if "!tempx!"=="v" set temp%%i=31
if "!tempx!"=="V" set temp%%i=31
if "!tempx!"=="w" set temp%%i=32
if "!tempx!"=="W" set temp%%i=32
if "!tempx!"=="x" set temp%%i=33
if "!tempx!"=="X" set temp%%i=33
if "!tempx!"=="y" set temp%%i=34
if "!tempx!"=="Y" set temp%%i=34
if "!tempx!"=="z" set temp%%i=35
if "!tempx!"=="Z" set temp%%i=35
)
:F2
set /a temp1=%temp1%+1
set /a temp2=%temp2%+4
set /a temp3=%temp3%+2
set /a temp4=%temp4%+4
set /a temp5=%temp5%+3
set /a temp6=%temp6%+2
set /a temp7=%temp7%+3
set /a temp8=%temp8%+4
set /a temp9=%temp9%+4
set /a temp10=%temp10%+1
set /a temp11=%temp11%+3
set /a temp12=%temp12%+4
set /a temp13=%temp13%+1
set /a temp14=%temp14%+2
set /a temp15=%temp15%+4
set /a temp16=%temp16%+4
set /a temp17=%temp17%+4
set /a temp18=%temp18%+1
set /a temp19=%temp19%+3
set /a temp20=%temp20%+3
set key1=%temp1%
set key2=%temp2%
set key3=%temp3%
set key4=%temp4%
set key5=%temp5%
set key6=%temp6%
set key7=%temp7%
set key8=%temp8%
set key9=%temp9%
set key10=%temp10%
set key11=%temp11%
set key12=%temp12%
set key13=%temp13%
set key14=%temp14%
set key15=%temp15%
set key16=%temp16%
set key17=%temp17%
set key18=%temp18%
set key19=%temp19%
set key20=%temp20%
FOR /L %%I in (1,1,20) do (
set tempX=!temp%%I!
IF "!tempX!"=="10" set key%%I=A
IF "!tempX!"=="11" set key%%I=B
IF "!tempX!"=="12" set key%%I=C
IF "!tempX!"=="13" set key%%I=D
IF "!tempX!"=="14" set key%%I=E
IF "!tempX!"=="15" set key%%I=F
IF "!tempX!"=="16" set key%%I=G
IF "!tempX!"=="17" set key%%I=H
IF "!tempX!"=="18" set key%%I=I
IF "!tempX!"=="19" set key%%I=J
IF "!tempX!"=="20" set key%%I=K
IF "!tempX!"=="21" set key%%I=L
IF "!tempX!"=="22" set key%%I=M
IF "!tempX!"=="23" set key%%I=N
IF "!tempX!"=="24" set key%%I=O
IF "!tempX!"=="25" set key%%I=P
IF "!tempX!"=="26" set key%%I=Q
IF "!tempX!"=="27" set key%%I=R
IF "!tempX!"=="28" set key%%I=S
IF "!tempX!"=="29" set key%%I=T
IF "!tempX!"=="30" set key%%I=U
IF "!tempX!"=="31" set key%%I=V
IF "!tempX!"=="32" set key%%I=W
IF "!tempX!"=="33" set key%%I=X
IF "!tempX!"=="34" set key%%I=Y
IF "!tempX!"=="35" set key%%I=Z
IF "!tempX!"=="36" set key%%I=0
IF "!tempX!"=="37" set key%%I=1
IF "!tempX!"=="38" set key%%I=2
IF "!tempX!"=="39" set key%%I=3
IF "!tempX!"=="40" set key%%I=4
IF "!tempX!"=="41" set key%%I=5
IF "!tempX!"=="42" set key%%I=6
IF "!tempX!"=="43" set key%%I=7
IF "!tempX!"=="44" set key%%I=8
IF "!tempX!"=="45" set key%%I=9
)
echo passworld:%key1%%key2%%key3%%key4%%key5%%key6%%key7%%key8%%key9%%key10%%key11%%key12%%key13%%key14%%key15%%key16%%key17%%key18%%key19%%key20%
pause >nul

对应


@echo off
call :check 2>nul
if defined key goto main
:pwd
cls
setlocal enabledelayedexpansion
set list=0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
for /l %%a in (1 1 1) do (
        set "password="
        for /l %%b in (0 1 20) do (
                set /a "rand=!random!%%(61 + ^!%%b)"
                for %%z in (!rand!) do (
                        set password=!password!!list:~-%%z,1!
                        set list=!list:~%%z!!list:~,%%z!
                )
        )
           echo 你没有获取该软件的使用权利,请联系管理员获取使用授权码:!password!
)
set /p input= 输入授权码:
set temp1=%str:~0,1%
set temp2=%str:~1,1%
set temp3=%str:~2,1%
set temp4=%str:~3,1%
set temp5=%str:~4,1%
set temp6=%str:~5,1%
set temp7=%str:~6,1%
set temp8=%str:~7,1%
set temp9=%str:~8,1%
set temp10=%str:~9,1%
set temp11=%str:~10,1%
set temp12=%str:~11,1%
set temp13=%str:~12,1%
set temp14=%str:~13,1%
set temp15=%str:~14,1%
set temp16=%str:~15,1%
set temp17=%str:~16,1%
set temp18=%str:~17,1%
set temp19=%str:~18,1%
set temp20=%str:~19,1%


::==================================================================================================================================================================================================================================================================
:S1
setlocal enabledelayedexpansion
for /l %%i in (1,1,20) do (
set tempx=!temp%%i!
if "!tempx!"=="a" set temp%%i=10
if "!tempx!"=="A" set temp%%i=10
if "!tempx!"=="b" set temp%%i=11
if "!tempx!"=="B" set temp%%i=11
if "!tempx!"=="c" set temp%%i=12
if "!tempx!"=="C" set temp%%i=12
if "!tempx!"=="d" set temp%%i=13
if "!tempx!"=="D" set temp%%i=13
if "!tempx!"=="e" set temp%%i=14
if "!tempx!"=="E" set temp%%i=14
if "!tempx!"=="f" set temp%%i=15
if "!tempx!"=="F" set temp%%i=15
if "!tempx!"=="g" set temp%%i=16
if "!tempx!"=="G" set temp%%i=16
if "!tempx!"=="h" set temp%%i=17
if "!tempx!"=="H" set temp%%i=17
if "!tempx!"=="i" set temp%%i=18
if "!tempx!"=="I" set temp%%i=18
if "!tempx!"=="j" set temp%%i=19
if "!tempx!"=="J" set temp%%i=19
if "!tempx!"=="k" set temp%%i=20
if "!tempx!"=="K" set temp%%i=20
if "!tempx!"=="l" set temp%%i=21
if "!tempx!"=="L" set temp%%i=21
if "!tempx!"=="m" set temp%%i=22
if "!tempx!"=="M" set temp%%i=22
if "!tempx!"=="n" set temp%%i=23
if "!tempx!"=="N" set temp%%i=23
if "!tempx!"=="o" set temp%%i=24
if "!tempx!"=="O" set temp%%i=24
if "!tempx!"=="p" set temp%%i=25
if "!tempx!"=="P" set temp%%i=25
if "!tempx!"=="q" set temp%%i=26
if "!tempx!"=="Q" set temp%%i=26
if "!tempx!"=="r" set temp%%i=27
if "!tempx!"=="R" set temp%%i=27
if "!tempx!"=="s" set temp%%i=28
if "!tempx!"=="S" set temp%%i=28
if "!tempx!"=="t" set temp%%i=29
if "!tempx!"=="T" set temp%%i=29
if "!tempx!"=="u" set temp%%i=30
if "!tempx!"=="U" set temp%%i=30
if "!tempx!"=="v" set temp%%i=31
if "!tempx!"=="V" set temp%%i=31
if "!tempx!"=="w" set temp%%i=32
if "!tempx!"=="W" set temp%%i=32
if "!tempx!"=="x" set temp%%i=33
if "!tempx!"=="X" set temp%%i=33
if "!tempx!"=="y" set temp%%i=34
if "!tempx!"=="Y" set temp%%i=34
if "!tempx!"=="z" set temp%%i=35
if "!tempx!"=="Z" set temp%%i=35
)
:F2
set /a temp1=%temp1%-1
set /a temp2=%temp2%-4
set /a temp3=%temp3%-2
set /a temp4=%temp4%-4
set /a temp5=%temp5%-3
set /a temp6=%temp6%-2
set /a temp7=%temp7%-3
set /a temp8=%temp8%-4
set /a temp9=%temp9%-4
set /a temp10=%temp10%-1
set /a temp11=%temp11%-3
set /a temp12=%temp12%-4
set /a temp13=%temp13%-1
set /a temp14=%temp14%-2
set /a temp15=%temp15%-4
set /a temp16=%temp16%-4
set /a temp17=%temp17%-4
set /a temp18=%temp18%-1
set /a temp19=%temp19%-3
set /a temp20=%temp20%-3
set key1=%temp1%
set key2=%temp2%
set key3=%temp3%
set key4=%temp4%
set key5=%temp5%
set key6=%temp6%
set key7=%temp7%
set key8=%temp8%
set key9=%temp9%
set key10=%temp10%
set key11=%temp11%
set key12=%temp12%
set key13=%temp13%
set key14=%temp14%
set key15=%temp15%
set key16=%temp16%
set key17=%temp17%
set key18=%temp18%
set key19=%temp19%
set key20=%temp20%
FOR /L %%I in (1,1,20) do (
set tempX=!temp%%I!
IF "!tempX!"=="10" set key%%I=A
IF "!tempX!"=="11" set key%%I=B
IF "!tempX!"=="12" set key%%I=C
IF "!tempX!"=="13" set key%%I=D
IF "!tempX!"=="14" set key%%I=E
IF "!tempX!"=="15" set key%%I=F
IF "!tempX!"=="16" set key%%I=G
IF "!tempX!"=="17" set key%%I=H
IF "!tempX!"=="18" set key%%I=I
IF "!tempX!"=="19" set key%%I=J
IF "!tempX!"=="20" set key%%I=K
IF "!tempX!"=="21" set key%%I=L
IF "!tempX!"=="22" set key%%I=M
IF "!tempX!"=="23" set key%%I=N
IF "!tempX!"=="24" set key%%I=O
IF "!tempX!"=="25" set key%%I=P
IF "!tempX!"=="26" set key%%I=Q
IF "!tempX!"=="27" set key%%I=R
IF "!tempX!"=="28" set key%%I=S
IF "!tempX!"=="29" set key%%I=T
IF "!tempX!"=="30" set key%%I=U
IF "!tempX!"=="31" set key%%I=V
IF "!tempX!"=="32" set key%%I=W
IF "!tempX!"=="33" set key%%I=X
IF "!tempX!"=="34" set key%%I=Y
IF "!tempX!"=="35" set key%%I=Z
IF "!tempX!"=="-26" set key%%I=A
IF "!tempX!"=="-25" set key%%I=B
IF "!tempX!"=="-24" set key%%I=C
IF "!tempX!"=="-23" set key%%I=D
IF "!tempX!"=="-22" set key%%I=E
IF "!tempX!"=="-21" set key%%I=F
IF "!tempX!"=="-20" set key%%I=G
IF "!tempX!"=="-19" set key%%I=H
IF "!tempX!"=="-18" set key%%I=I
IF "!tempX!"=="-17" set key%%I=J
IF "!tempX!"=="-16" set key%%I=K
IF "!tempX!"=="-15" set key%%I=L
IF "!tempX!"=="-14" set key%%I=M
IF "!tempX!"=="-13" set key%%I=N
IF "!tempX!"=="-12" set key%%I=O
IF "!tempX!"=="-11" set key%%I=P
IF "!tempX!"=="-10" set key%%I=Q
IF "!tempX!"=="-9" set key%%I=R
IF "!tempX!"=="-8" set key%%I=S
IF "!tempX!"=="-7" set key%%I=T
IF "!tempX!"=="-6" set key%%I=U
IF "!tempX!"=="-5" set key%%I=V
IF "!tempX!"=="-4" set key%%I=W
IF "!tempX!"=="-3" set key%%I=X
IF "!tempX!"=="-2" set key%%I=Y
IF "!tempX!"=="-1" set key%%I=Z
)
set "key=%key1%%key2%%key3%%key4%%key5%%key6%%key7%%key8%%key9%%key10%%key11%%key12%%key13%%key14%%key15%%key16%%key17%%key18%%key19%%key20%"
echo %key%
set "shouquanma=%key%"
echo %shouquanma%
if not defined input goto pwd
if not "%input%"=="!shouquanma!" goto pwd
pause
(echo;
echo;:check
echo;set key=123
echo;goto :eof
echo;
)>>%0
:main
echo;hello word
echo.&pause&exit




这是我自己敲的

TOP

本帖最后由 pcl_test 于 2017-4-2 08:47 编辑

回复 5# taofan712


当输入正确号码后,添加一点记号到本bat,下次启动时检查这个记号
低端方法有很多,授权码输入正确之后,可以生成一个临时文件到某个目录,或者重定向一段代码到%0.再次打开批处理时候,判断一下就可以。

@echo off
call :check 2>nul
if defined key goto main
:pwd
cls
set /p input= 输入授权码
if not defined input goto pwd
if not "%input%"=="shouquanma" goto pwd
(echo;
echo;:check
echo;set key=123
echo;goto :eof
echo;
)>>%0
:main
echo;hello word
echo.&pause&exit

if not "%input%"=="shouquanma" goto pwd
这一行的shouquanma怎么改为变量

TOP

回复 10# 渣白


    if not "%input%"=="%key%" goto pwd
    if not "%input%"=="%shouquanma%" goto pwd
都可以,如果出错了,那应该是你中间的算法有问题。
——————————————————————————————————
     你这个脚本都这么久了,结果是用的各种if和set加起来300多行。建议多看看论坛的帖子,我估计,应该在80行左右可以完成你的任务。
赋值那一段,参考新手练功区http://www.bathome.net/thread-458-1-1.html
循环截取判断,参考新手练功区http://www.bathome.net/thread-2564-1-1.html
加密解密算法,可以参考batman的http://www.bathome.net/thread-1278-1-1.html
几位大神的一些讨论 http://www.bathome.net/viewthread.php?tid=15628
另外,if 的参数i也是很好用的。

TOP

回复 12# taofan712


    好的,我自学不久。。所以代码什么的还不会优化,谢谢谢谢

TOP

回复 12# taofan712

还有一个小问题。没想通
这个是弹出到记事本的
    cscript slmgr.vbs /dti>step2.txt&&start step2.txt

三个或三个以上的怎么弹
cscript slmgr.vbs /dti
cscript slmgr.vbs /ato
cscript slmgr.vbs /xpr

我用过  &&  链接符号 但是只有最后一个弹出来了

所以不明白

TOP

回复 12# taofan712


    我编出来了,但是还有一个问题就是
我自己输入了授权码,然后把软件发送给别人,别人也授权了,
怎么让他识别,
加一个电脑IP吗?

TOP

返回列表