一、cmd脚本基本知识

  行注释:

REM 这里是注释的内容

  输出一个空行;紧跟着一个点。

echo.

  屏幕暂停,按回车键脚本继续执行;单词的英文意思就是暂停。

pause

  取消命令回显(在脚本中不现实执行的是那些命令);回显可以调试错误时看清楚错在哪一行。

@echo off

  显示当前目录

C:\Program Files (x86)\run>cd
C:\Program Files (x86)\run

  自定义提示符;“#”号后边有个空格;出来的效果就咋个linux一样的。

C:\Users\Administrator>prompt #
#

  “@echo off”中@的含义

  在cmd执行命令时,不易觉察。要是写个脚本,仅仅包含一行时,带不带“@”,效果就很明显了。就例子“@echo off”看,想关闭回显,带了就在该命令执行时起作用,不带就是后边语句执行起作用。


二、BAT与CMD中的部分参数
  1、环境变量

    %windir%     —— 操作系统文件夹,“C:\windows”
    %programfiles%   —— 应用程序默认安装目录,“C:\Program Files”
    %systemdrive%   —— 操作系统所在磁盘,“C:”
    %systemroot%   —— 操作系统文件夹,“C:\windows”
    %TEMP%      —— 当前用户的临时目录:

                “C:\Users\USER\AppData\Local\Temp”

    %TMP%      —— 当前用户的临时目录,同上

    %USERNAME%    —— 当前用户

                Administrator

:查看目前操作的用户

#

  2、cmd内置命令(可以在CMD命令行模式中输入HELP获得)

    ATTRIB   —— 显示或更改文件属性。
    BREAK   —— 设置或清除扩展式 CTRL+C 检查。
    CALL    —— 从另一个批处理程序调用这一个。
    CD     —— 显示当前目录的名称或将其更改。
    CHDIR   —— 显示当前目录的名称或将其更改。
    CHKDSK   —— 检查磁盘状态。
    COLOR   —— 设置默认控制台的颜色属性:color 0F,黑底白字

            (参数是两个十六进制数字,表示背景色、前景色)。
    COPY    —— 将至少一个文件复制到另一个位置。
    DEL    —— 删除至少一个文件。
    DIR    —— 显示一个目录中的文件和子目录。
    ECHO    —— 显示消息;打开或关上“命令回显”。
    EXIT    —— 退出命令解释、或脚本。
    FC     —— 比较两个或两套文件,并显示不同处。
    FIND    —— 在文件中搜索文本字符串。
    FINDSTR  —— 在多个文件中搜索字符串。
    FOR    —— 循环语句

    IF    —— 选择语句
    MD    —— 创建目录。
    MOVE   —— 将文件从一个目录移到另一个目录。
    PATH   —— 显示或设置可执行文件的搜索路径。
    PAUSE   —— 暂停批文件的处理并显示消息。
    PROMPT  —— 更改 Windows 命令提示符。
    RD   —— 删除目录。
    REM   —— 记录批文件或 CONFIG.SYS 中的注释。
    REN   —— 重命名文件。
    REPLACE  —— 替换文件。
    SET   —— 显示、设置或删除 Windows 环境变量。
    SETLOCAL   —— 开始批文件中环境更改的本地化。
    SHIFT   —— 更换批文件中可替换参数的位置。
    SORT   —— 对输入进行分类。
    START   —— 启动另一个窗口来运行指定的程序或命令。
    TITLE   —— 设置 CMD.EXE 会话的窗口标题。
    TYPE   —— 显示文本文件的内容。

  3、外部命令(C:\Windows\System32\)

    net   —— (*复杂难以解释)

    netstat   —— (*复杂难以解释)

    ping   —— 可以检测网络的运行状态的程序,从WINDOWS时×××始就有了

    regsvr32   —— 服务注册程序,一般是插件的注册,也可以是×××
    reg   —— (*复杂难以解释)

    shutdown   —— (*复杂难以解释)

    systeminfo   —— 查看系统当前配置情况的参数,也可以显示出运行时间等
    taskkill   —— 进程删除程序,这个可以关闭至少一个进程
    tasklist   ——查看当前进程列表的程序

    where   ——搜索文件位置


三、制作带向导功能的特殊结构脚本
  看到标题大家可能会有点郁闷:BAT、CMD脚本也可以实现向导功能?
  很荣幸的告诉大家,是的。BAT、CMD脚本不但可以实现脚本的向导功能,而且还可以结合大量的参数,组合成一个只需要不到100KB就可以通吃所有系统的工具包!

  本介绍部分可以配合“结合Universal Extractor进行简单软件的绿化制作”所写的制作过程进行实况编写,不过限于篇幅关系,这里只对带有向导的BAT、CMD脚本进行解析。

  首先让我们看一个简单的不能再简单的例子

@echo off
cls

四、利用第三方工具进行基于脚本的软件的生成
  这段时间在网上发现两个很好玩的工具:EXE2BAT 1.0 与 文件转换VBS.VBS。前者会把所有EXE文件经过DEBUG程序编写成BAT脚本,让用户在执行BAT脚本的同时可以还原该脚本中包含的文件,默认会执行还原后的文件,当然我们可以修改生成后的脚本;后者会把所有文件都编写成BAT脚本,执行这个BAT文件的用户将得到原文件,过程不说也很清楚,这里就PASS。
  
  目前已经搞到了EXE2BAT的程序源代码,编译用的好象还是WIN32语言的样子(我看不懂……),以下是源代码——

#include <stdio.h>
#include <string.h>
#define M 65279
char *msg="GOOD_LUCK";
void help(void);
char exe2bat(char *,char *);
int main(int argc,char **argv)
{if(argc==1){help();}exe2bat(argv[1],argv[2]);return 0;
}
void help()
{printf("\nWritten by W.Z.T <==Don't be lazy,Just go ahead==>\n\n");printf("exe2bat.exe input.exe output.bat\n");exit(0);
}
char exe2bat(char *s_f,char *t_f)
{FILE *s_fp,*t_fp;char *s_fe=s_f;char *t_fe=t_f;char c;char ch;long lenth;int i=1,k=256;if((s_fp=fopen(s_fe,"rb"))==NULL){printf("Can't open the file %s.\n",s_fe);exit(0);}if((t_fp=fopen(t_fe,"w+"))==NULL){printf("Can't create the file %s.\n",t_fe);exit(0);}fseek(s_fp,0,SEEK_END);lenth=ftell(s_fp);fseek(s_fp,0,SEEK_SET);printf("%ld,%x\n",lenth,lenth);if(lenth>=M){printf("The exe file's lenth must be <= M-1\n");exit(0);}fputs("@echo e ",t_fp);fprintf(t_fp,"%04x ",k);while(!feof(s_fp)){k++;c = fgetc(s_fp);if(( unsigned char ) c<= ( unsigned char )15)fprintf(t_fp,"0",c);fprintf(t_fp,"%x ",(unsigned char)c);if(i%16==0){fputs(">>sgl\n",t_fp);fputs("@echo e ",t_fp);fprintf(t_fp,"%04x ",k);}i++;}if(lenth%16!=0)fputs(">>%tmp%\\sgl\n",t_fp);fputs("@echo rcx>>sgl\n",t_fp);fprintf(t_fp,"@echo %x>>sgl\n",lenth,t_fp);fputs("@echo n tthacker>>sgl\n",t_fp);fputs("@echo w>>sgl\n",t_fp);fputs("@echo q>>sgl\n",t_fp);fputs("@debug<sgl>nul\n",t_fp);fputs("@del sgl\n",t_fp);fputs("@ren tthacker ",t_fp);fprintf(t_fp,"%s>>sgl\n",s_fe);fputs("@",t_fp);fprintf(t_fp,"%s",s_fe);fclose(s_fp);fclose(t_fp);puts(msg);return 0;
}

  文件转换VBS的源代码如下(大家可以复制后保存成VBS文件,然后把任意文件拉到这个VBS文件上,将在目录下多出一个BAT文件,那个就是你的文件的“BAT版”了)——

fp=wscript.arguments(0)
fn=right(fp,len(fp)-instrrev(fp,"\"))
with createobject("adodb.stream")
.type=1:.open:.loadfromfile fp:str=.read:sl=lenb(str)
end with
sll=sl mod 65536:slh=sl\65536
with createobject("scripting.filesystemobject").opentextfile(fp&".bat",2,true)
.write "@echo str="""
for i=1 to sl
bt=ascb(midb(str,i,1))
if bt<16 then .write "0"
.write hex(bt)
if i mod 128=0 then .write """_>>debug.vbs"+vbcrlf+"@echo +"""
next
.writeline """>>debug.vbs"+vbcrlf+"@echo with wscript.stdout:r=vbcrlf"_
+":for i=1 to len(str) step 48:.write ""e""+hex(256+(i-1)/2)"_
+":for j=i to i+46 step 2:.write "" ""+mid(str,j,2):next:.write r:next>>debug.vbs"
.writeline "@echo .write ""rbx""+r+"""+hex(slh)+"""+r+""rcx""+r+"""+hex(sll)_
+"""+r+""n debug.tmp""+r+""w""+r+""q""+r:end with"_
+">>debug.vbs&&cscript.//nologo debug.vbs|debug.exe>nul&&ren debug.tmp
"""&fn&"""&del debug.vbs"
end with

  由于我现在写的是BAT、CMD批处理脚本的应用,所以在这里我们还是着重讲一下EXE2BAT。
我这里有一段由EXE2BAT生成的BAT脚本——

@echo e 100 D5 E2 BE CD CA C7 D7 AA BB BB BA F3 B5 C4 BD E1 >>tmp11
@echo e 110 B9 FB A3 AC B4 F3 BC D2 BB B9 C2 FA D2 E2 B0 C9 >>tmp11
@echo e 120 A3 BF 48 4F 48 4F A1 AB A1 AB 0D 0A 20 20 20 20 >>tmp11
@echo e 130 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 >>tmp11
@echo e 140 20 20 20 20 20 20 20 20 20 20 20 A1 AA A1 AA 42 >>tmp11
@echo e 150 59 20 C1 FA C3 CE C7 EF >>tmp11
@echo rcx>>tmp11
@echo 58>>tmp11
@echo n tmp1>>tmp11
@echo w>>tmp11
@echo q>>tmp11
@debug<tmp11>nul
@Copy /b /y tmp1 readme.txt
@start readme.txt
@del tmp*

  大家将上面的代码复制后保存成一个.BAT文件后执行,看看你看到了什么?
  从这里大家可以看出,EXE2BAT的操作原理是先将文件经过DEBUG程序进行编码,然后分解成字符保存。但是由于DEBUG不支持中文,所以如果转换的文件的文件名不是英文,转换后的文件名将会是乱码。


转载于:https://blog.51cto.com/sunnybay/1549643

cmd脚本(WIN10下)相关推荐

  1. cmd脚本win10使用schtasks命令实现定时任务

    cmd脚本win10使用schtasks命令实现定时任务 新建txt文本输入以下代码.本次事例是实现每天晚上22:40:00.22:41:00.22:42:00启动指定脚本 @echo off sch ...

  2. win10下的Cmd命令的初步认识

    win10下的Cmd命令认识 一. ipconfig命令 1.介绍 2.实操 2.1.使用`ipcongfig /all`查看自己主机IP地址 2.2查看其它电脑IP

  3. 记win10下ubantu子系统运行shell脚本的坑

    这几天在看陈硕大大的 muduo,然后兴致勃勃的发现win10下有个linux子系统,然后安装ubantu,兴致盎然的./build.sh....结果给我提示 然后度娘找了无数遍,突然百度到了shel ...

  4. Win10下如何按计划自动运行脚本

    Win10下如何按计划自动运行脚本 通过按计划自动定期运行Python脚本或其他可执行文件,我们可以避免忘记手动运行脚本的烦恼.以下是win10下的具体操作步骤(本教程以Python脚本为例): 点击 ...

  5. java在win10下用命令行操作(cmd的命令由java程序执行)

    For example: /**      * @param ipAddress  ip地址      * @param pingTimes  次数(一次ping,对方返回的ping的结果的次数)   ...

  6. mysql安装最后两项无响应,win10下安装mysql8.0.23 及 “服务没有响应控制功能”问题解决办法...

    win10下安装mysql 1. 官网下载mysql 网址:https://www.mysql.com/downloads/ download页面往下拉:点击下图红框: 按下图指示操作: 下载之后解压 ...

  7. win10下Redis集群搭建的详细步骤

    win10下安装Redis集群,目前已经安装成功,记录下安装过程. 1)准备安装所需要的4个组件: Redis.Ruby语言运行环境.Redis的Ruby驱动redis-3.2.2.gem.创建Red ...

  8. win10环境下c语言打开文件失败,cfile fopen fopen_s win10下打开文件失败

    vc程序在win10下面使用fopen 打开文件失败,在网上查 了下是因为UAC权限的问题如下: 由于windows vista win7 win8 win 10 添加了UAC权限,所以会导致 在系统 ...

  9. win10 下 caffe 的第一个测试程序(附带详细讲解)

    win10 下 caffe 的第一个测试程序 该部分包括两篇文章 win10 下 caffe 的第一个测试程序(附带详细讲解) 主要讲解如何利用 caffe 来训练模型. 如何调用 caffe 训练好 ...

  10. Win10下的Python环境配置

    Win10下的Python环境配置 原料 64位Windows10 专业版 安装Python 访问python的官方网站www.python.org,点击download,如图一 选择2.7版本,如图 ...

最新文章

  1. mysql在linux下的安装
  2. View Transform(视图变换)详解
  3. STM32F103ZET6窗口看门狗
  4. android盒子模拟器,emubox模拟器盒子
  5. python数据挖掘入门与实战代码
  6. PHP算法基于相同键合并数组
  7. 修改 Workshop 中 text box 输入内容的颜色
  8. IO多路复用之select
  9. [转载] python 元组tuple - python基础入门(14)
  10. Linux命令-关机,重启
  11. 数组中最大连续子数组和,最大连续子数组积,最大递增子序列
  12. 详细讲解3DMAX导出插件-tiamo
  13. 计算机怎么新建word文档,右键新建没有word文档怎么办?Win10新建word文档的方法...
  14. 【读书笔记】-《软件测试的艺术》
  15. odoo报表内部和外部布局
  16. CentOS7各个版本镜像下载地址及说明、Everything版
  17. JAVA自学-day16-List的子类、泛型、增强for循环、静态导入、可变参数
  18. 如何修改chrome账号密码自动填充的字体样式
  19. html hr代码的效果,HTML hr是什么意思
  20. Kotlin协程-并发处理-基础

热门文章

  1. 艺无止境·一路前行——王玉玺先生作品欣赏
  2. Zemax-多重结构的公差分析
  3. 视觉Prompt新方法:超越所有微调方法,参数量大幅减少
  4. Codeforces1153——D. Serval and Rooted Tree(思维好题+dfs+贪心)
  5. php表格整体怎么移动,超级表格新版移动端操作指南
  6. 【华为机试真题 Python实现】数大雁【2022 Q2 | 100分】
  7. 我的小感悟(个人愚见)
  8. 金蝶云苍穹笔记(一)
  9. 心血管疾病:评估驾驶适应性(英国DVLA)
  10. 《炬丰科技-半导体工艺》三维硅MEMS结构微加工