![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-04 06:54 |
共 48,038 主题排行 / 350,123 发帖 / 今日 0 篇 / 48,251 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 命令行脚本集成 |
| 可打印版本 2,294 / 22 |
| 第1楼 everest79 | 发表于 2007-01-13 05:27 |
| 金牌会员 发帖 1,127 积分 2,564 | |
|
命令行脚本集成 论坛上有这么多精彩的命令行脚本,其中一些我们可能会在日常使用或调试中用到,所以我写了这个,打算把自已需要使用的集成在一起,以便调用
@ECHO OFF ::以下这句考虑到可能会在别的批处理中调用所以来判断是否已经启用了延缓 IF NOT "%CD%" == "!CD!" SETLOCAL ENABLEDELAYEDEXPANSION ::因为%1-%9的识别特性(有第九个就一定会有第八个)来得到参数的个数 IF NOT == SET /A PVAR+=1 IF NOT == SET /A PVAR+=1 IF NOT == SET /A PVAR+=1 IF NOT == SET /A PVAR+=1 IF NOT == SET /A PVAR+=1 IF NOT == SET /A PVAR+=1 IF NOT == SET /A PVAR+=1 IF NOT == SET /A PVAR+=1 IF NOT == SET /A PVAR+=1 ::若没有参数则转向 IF == GOTO README :start ::这一小节依大到小来CALL参数来执行 ECHO. ::假设只有一个参数(%1=HT ff),那么这一行转换过来就是CALL :HT ff 2>nul(CALL :%%1~1 2>nul),采用这种方法主要是为了将参数%1在CALL :HT时延续内部参数ff CALL :%%^~!PVAR! 2>nul ::每执行完一个就减1 SET /A PVAR-=1 ::执行完退出 IF NOT %PVAR% LEQ 0 (GOTO :START) ELSE GOTO :EOF :readme ::这一节纯粹是好玩,类似CMD下的命令帮助 ECHO. ECHO EXPANDING TOOLS FOR CMD.EXE ECHO. ECHO usage: ECHO %~nx0 "command1 options" "command2 ...... "command9 option1 .... option9" ECHO. ECHO command: FOR /F "delims=:" %%i IN ('FINDSTR /R "^*$" %0') DO ECHO %~nx0 "%%i options" ECHO. ECHO syntax examples ECHO %~nx0 "HT ff fe fd fc fb fa f0 f9 f8" "TH 999999" "LOS "123456"" ECHO -... pause>nul GOTO :EOF ::以下是我随意添加的一些脚本,你可以将自已常用的加进去 :HT ::这一节是16进制转为10进制 SET /A VAR1=0x00%1,VAR2=0x00%2,VAR3=0x00%3,VAR4=0x00%4,VAR5=0x00%5,VAR6=0x00%6,VAR7=0x00%7,VAR8=0x00%8,VAR9=0x00%9 FOR /L %%i IN (1,1,9) DO SET /p=!VAR%%i! <nul ECHO ^<^<=%0 GOTO :EOF :TH ::这一节是十进制转16进制 IF %1 GTR 2099999999 (GOTO :EOF) SET VAR=0123456789ABCDEF FOR /L %%i IN (0,1,15) DO ( SET H%%i=!VAR:~%%i,1!) SET HH=1&SET KK=0&SET TT=%1 :th1 SET /A HV%HH%=%TT%/16,HV%KK%=%TT%%%16 IF !HV%HH%! GTR 16 (SET TT=HV%HH%&&SET /A HH+=1,KK+=1&&GOTO TH1) SET VAR1=0x00!H%HV9%!!H%HV8%!!H%HV7%!!H%HV6%!!H%HV5%!!H%HV4%!!H%HV3%!!H%HV2%!!H%HV1%!!H%HV0%! ECHO %VAR1% ^<^<=%0 GOTO :EOF :LOS ::得到字符串长度 SET STR=%1&SET VAR1=0 SET STR=%STR:"=X% :los1 IF NOT "!STR:~%VAR1%,1!" == "" SET /A VAR1=%VAR1%+1&&GOTO LOS1 ECHO %0 == %VAR1% GOTO :EOF :SLEEP ::延时 echo q | debug>nul echo Bj@jzh`0X-`/PPPPPPa(DE(DM(DO(Dh(Ls(Lu(LX(LeZRR]EEEUYRX2Dx=>sleep.com echo 0DxFP,0Xx.t0P,=XtGsB4o@$?PIyU WwX0GwUY Wv;ovBX2Gv0ExGIuht6>>sleep.com echo T}{z~~@GwkBG@OEKcUt`~}@MqqBsy?seHB~_Phxr?@zAB`LrPEyoDt@Cj?>>sleep.com echo pky_jN@QEKpEt@ij?jySjN@REKpEt@jj?jyGjN@SEKkjtlGuNw?p@pjirz>>sleep.com echo LFvAURQ?OYLTQ@@?~QCoOL~RDU@?aU?@{QOq?@}IKuNWpe~FpeQFwH?Vkk>>sleep.com echo _GSqoCvH{OjeOSeIQRmA@KnEFB?p??mcjNne~B?M??QhetLBgBPHexh@e=>>sleep.com echo EsOgwTLbLK?sFU`?LDOD@@K@xO?SUudA?_FKJ@N?KD@?UA??O}HCQOQ??R>>sleep.com echo _OQOL?CLA?CEU?_FU?UAQ?UBD?LOC?ORO?UOL?UOD?OOI?UgL?LOR@YUO?>>sleep.com echo dsmSQswDOR :test1 echo test1 %1 %2 goto :eof :test2 echo test2 %1 %2 goto :eof :test3 echo test3 %1 %2 goto :eof :test4 echo test4 %1 %2 goto :eof :test5 echo test5 %1 %2 goto :eof :test6 echo test6 %1 %2 goto :eof :test7 echo test7 %1 %2 goto :eof :test8 echo test8 %1 %2 goto :eof :test9 echo test9 %1 %2 goto :eof [ Last edited by everest79 on 2007-2-17 at 04:51 PM ] |
|
| 第2楼 everest79 | 发表于 2007-01-13 22:32 |
| 金牌会员 发帖 1,127 积分 2,564 | |
|
貌似每次我发贴都不大有人回的
|
|
| 第3楼 scriptor | 发表于 2007-01-13 22:35 |
| 银牌会员 发帖 555 积分 1,187 | |
|
我来支持你
|
|
| 第4楼 mackyliu | 发表于 2007-01-13 23:47 |
| 初级用户 发帖 16 积分 32 | |
|
没明白这是些啥东东
|
|
| 第5楼 everest79 | 发表于 2007-01-13 23:49 |
| 金牌会员 发帖 1,127 积分 2,564 | |
|
谢谢,嘿嘿
|
|
| 第6楼 everest79 | 发表于 2007-01-13 23:51 |
| 金牌会员 发帖 1,127 积分 2,564 | |
Originally posted by mackyliu at 2007-1-13 10:47 AM: 实现的功能为将一些有用的脚本整合在一个批处理中,通过批处理文件名+参数来进行调用 |
|
| 第7楼 vlanmaster | 发表于 2007-01-14 02:59 |
| 初级用户 发帖 46 积分 100 | |
|
我也来支持你。好东西。
|
|
| 第8楼 yesmao | 发表于 2007-01-14 04:24 |
| 初级用户 发帖 18 积分 35 | |
|
好东西,楼主我支持你
|
|
| 第9楼 degwcwt | 发表于 2007-01-14 08:26 |
| 新手上路 发帖 6 积分 12 | |
|
ding 严重支持
|
|
| 第10楼 xiaohacker | 发表于 2007-01-15 05:51 |
| 初级用户 发帖 45 积分 110 | |
|
强人 这么强的人,我想给你加分,可惜不能加,每天只能加2分!
|
|
| 第11楼 everest79 | 发表于 2007-01-15 08:12 |
| 金牌会员 发帖 1,127 积分 2,564 | |
|
呵呵,我乐
|
|
| 第12楼 lxmxn | 发表于 2007-01-15 08:35 |
| 版主 发帖 4,938 积分 11,386 | |
|
兄可以丢个例子出来么?看了半天,一头雾水……
|
|
| 第13楼 everest79 | 发表于 2007-01-15 08:53 |
| 金牌会员 发帖 1,127 积分 2,564 | |
|
呵呵,例如将以上脚本保存为etc.cmd
然后执行 etc "ht ff" ;ht 16进制转换10进制 etc "th 255" ;th 10进制转16进制 etc "sleep 10000" ;sleep 延时10000ms etc "los "123456"" ;los 取得字符串长度 以上命令的返回结果是变量var1 也可以使用复合命令 etc "ht ff fe fd f9 f7" "th 99876" "los" "los "987654321"" "sleep 10000" 因为这里返回变量被覆盖,所以var1是最后一个命令的结果 ht命令一共可以返回9个结果 var1-var9 |
|
| 第14楼 tsmirs | 发表于 2007-01-23 04:15 |
| 初级用户 发帖 9 积分 23 | |
|
看不懂,顶一下
|
|
| 第15楼 sadawn | 发表于 2007-01-23 04:17 |
| 初级用户 发帖 14 积分 39 | |
|
脚本集合吗
|
|
| 1 2 下一页 |
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |