1.初衷:

bat 批处理文件:当我懒得一个个操作的时候,可以把若干东西放到一个文件里面,开机运行或者需要的时候手动运行、节省时间。

2.命令集说明

2.1 常用命令

2.1.0 help

命令 /?      help 命令
type /? >>tmp.txt  (把 type 命令的帮助信息写入到tmp.txt文件里)

2.1.1 @  ( 仅影响当前行, 相对于echo off 来说,是遮住了一行,而不是挡住了一片 )

不显示@后面的命令,在入侵过程中(例如使用批处理来格式化敌人的硬盘)自然不能让对方看到你使用的命令啦。
eg 关闭回显(之后的指令不再显示,只输出执行结果):@echo off

2.1.2 echo

打开回显或关闭请求回显功能,或显示消息。如果没有任何参数,echo 命令将显示当前回显设置。

echo 显示当前回显设置

echo on   打开回显,即显示指令输入及其输出结果

echo off    隐藏后面的所有指令及其输出结果( 在遇到 echo  on  之前 )

echo 'hello'   单纯输出字符串

2.1.3 rem    (可用::,: 代替rem, :Here is the description , ::Here is the description)

rem   注释命令  :  @Rem Here is the description

2.1.4 pause

pause     暂停,使程序挂起

@echo off
:begin
copy a:*.* d:\\back
echo Please put a new disk into driver A
pause
goto begin

,驱动器 A 中磁盘上的所有文件均复制到d:\\back中。显示的注释提示您将另一张磁盘放入驱动器 A 时,pause 命令会使程序挂起,以便您更换磁盘,然后按任意键继续处理

2.1.5 call

call [[Drive:][Path] FileName [BatchParameters]] [:label [arguments]]           指定要调用的批处理程序的位置和名称。filename 参数必须具有 .bat 或 .cmd 扩展名

一个批处理程序调用另一个批处理程序,并且不终止父批处理程序

2.1.6 start

启动单独的“命令提示符”窗口来运行指定程序或命令

start ["title"] [/dPath] [/min] [/max] [{/separate |/shared}] [{/low | /normal | /high | /realtime | /abovenormal | belownormal}][/wait] [/B] [FileName] [parameters]

"title" 指定在“命令提示符”窗口标题栏中显示的标题。

/dpatch 指定启动目录。

/i 将 Cmd.exe 启动环境传送到新的“命令提示符”窗口。

/min 启动新的最小化窗口。

/max 启动新的最大化窗口。

/separate 在单独的内存空间启动 16 位程序。

/shared 在共享的内存空间启动 16 位程序。

/low 以空闲优先级启动应用程序。

/normal 以一般优先级启动应用程序。

/high 以高优先级启动应用程序。

/realtime 以实时优先级启动应用程序。

/abovenormal 以超出常规优先级的方式启动应用程序。

/belownormal 以低出常规优先级的方式启动应用程序。

/wait 启动应用程序,并等待其结束。

/b 启动应用程序时不必打开新的“命令提示符”窗口。除非应用程序启用 CTRL+C,否则将忽略 CTRL+C 操作。使用 CTRL+BREAK 中断应用程序。

2.1.7 choice

choice 使用此命令可以让用户输入一个字符,从而运行不同的命令

@echo off
choice /c dme
if errorlevel 3 goto defrag
if errorlevel 2 goto mem
if errotlevel 1 goto end

:defrag
echo '1'
goto end

:mem
echo '2'
goto end

:end
echo good bye

pause

2.1.8 if

if 表示将判断是否符合规定的条件,从而决定执行不同的命令。 有三种格式

if "参数" == "字符串"     if "%1"=="a" format a:

if exist config.sys edit config.sys              if exist config.sys type config.sys

if errorlevel 2 goto x2

else 连用

 if 1 == 0 ( echo comment1 ) else if 1==0 ( echo comment2 ) else (echo comment3 )

2.1.9 for

循环操作

2.2 组合命令

2.2.1 &

同时执行多条命令,而不管命令是否执行成功          dir z: & dir c:\\Ex4rch

2.2.2 &&

同时执行多条命令,当碰到执行出错的命令后将不执行后面的命令       dir z: && dir c:\\Ex4rch

2.2.3  ||

同时执行多条命令,当碰到执行正确的命令后将不执行后面的命令,如果没有出现正确的命令则一直执行完所有命令          dir fdImg || start website.txt

2.3  管道命令

2.3.1  |

第一条命令 | 第二条命令 [| 第三条命令...]

第一条命令的结果作为第二条命令的参数来使用           netstat -n -p tcp|find ":49264">D:\\IP.log

2.3.2  >、>>

输出重定向命令

将一条命令或某个程序输出结果的重定向到特定文件中, > 与 >>的区别在于,>会清除调原有文件中的内容后写入指定文件,而>>只会追加内容到指定文件中

echo hello world>website.txt

2.4 系统参数  ( 用户及其设置不同值不同 )

%SystemRoot% === C:\WINDOWS (%windir% 同样)
%ProgramFiles% === C:\Program Files

%USERPROFILE% === C:\Documents and Settings\Administrator (子目录有“桌面”,“开始菜单”,“收藏夹”等)

如: 访问我桌面的某个文档       start %USERPROFILE%\desktop\website.txt

C:\Users\admin\Desktop>start C:\Users\admin\desktop\website.txt

%APPDATA% === C:\Documents and Settings\Administrator\Application Data
%TEMP% === C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp (%TEM% 同样)
%APPDATA% === C:\Documents and Settings\Administrator\Application Data
%OS% === Windows_NT (系统)
%Path% === %SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem (原本的设置)
%HOMEDRIVE% === C: (系统盘)
%HOMEPATH% === \Documents and Settings\Administrator

3.实际经验分享

3.1 .bat 文件乱码问题

新建一个txt文件   -   文件”=》“另存为”,  在编码的时候选择“ANSI”   -   更改为 .bat 后缀  或者 .cmd

3.2 批量打开程序

@echo off

start C:\Users\admin\Desktop\mark.txt
start C:\Users\admin\Desktop\route.txt
start C:\Users\admin\Desktop\styleLogin.txt

start C:\"Program Files (x86)"\Tencent\QQ\Bin\QQScLauncher.exe
start C:\"Program Files (x86)"\Tencent\WeChat\WeChat.exe
start C:\Users\admin\AppData\Roaming\360se6\Application\360se.exe

start C:\Users\admin\Desktop\text.xlsx

echo "hello myboy"

pause

扩展:

开机启动目录

C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup

3.3 创建目录文件并比较

dir*.exe>exeback.txt & dir *.dll>dllback.txt

fc exeback.txt exeback1.txt>diff.txt

3.4 传递参数给批处理文件

%[1-9]表示参数,参数是指在运行批处理文件时在文件名后加的以空格(或者Tab)分隔的字符串。

变量可以从%0到%9,%0表示批处理命令本身,其它参数字符串用 %1 到 %9 顺序表示。

  call test2.bat "hello" "haha" (执行同目录下的“test2.bat”文件,并输入两个参数)
在“test2.bat”文件里写:
echo %1 (打印: "hello")
echo %2 (打印: "haha")
echo %0 (打印: test2.bat)
echo %19 (打印: "hello"9)

4.常用 api

md d:\aa  创建文件夹

set /p pass=请输入密码      等待用户输入、同时设置变量 ( 附带 pause 作用 )

color 0a     设置控制台颜色   ( 背景色 0   文本颜色  a   ,  both : 0-f )

cls : 清屏

start C:\Users\admin\AppData\Roaming\360se6\Application\360se.exe http://www.baidu.com    打开浏览器 并访问网站

修改文件的文件名    rename test.jpg test2.JPG         rename *.jpg *.888.JPG

ren 原文件名 新文件名 重命名文件名
tree 以树形结构显示出目录,用参数-f 将列出第个文件夹中文件名称
type 文件名 显示文本文件的内容

tasklist >list.txt   将所有进程保存到list文件中(默认保存到当前目录)

5. 查看内置命令帮助指令

ver /? cmd /? set /? rem /?
if /? echo /? goto /? for /?
shift /? call /? type /? find /?
findstr /? copy /?

6.字符串处理

6.1  割字符串,以查看时间为例

 %源字符串:~起始值,截取长度%  (起始值从0开始;截取长度是可选的,如果省略逗号和截取长度,将会从起始值截取到结尾;
截取长度如果是负数,表示截取到倒数第几个。)
 "%time%"  显示如:"11:04:23.03" (完整的时间"hh:mm:ss.tt")
"%time:~0,5%" 显示"hh:mm"(即"11:04"),其中0表示从右向左移位操作的个数,5表示从左向右移位操作的个数
"%time:~0,8%" 显示标准时间格式"hh:mm:ss"(即"11:04:23",前8个字符串)
"%time:~3,-3%"显示"mm:ss"(即从第4个开始,截去最后3个的字符串)
"%time:~3%" 显示"04:23.03"(即去掉前4个字符串)
"%time:~-3%" 显示".tt"(即最后3个字符串)
上面的字串分割格式,也可以用于其它地方,如目录路径:"%cd:~0,10%"

6.2  替换字符串

       set a="abcd1234"
echo %a% 显示:"abcd1234"
set a=%a:1=kk% 替换“1”为“kk”
echo %a% 显示:"abcdkk234"

6.3 字符串合并

  set str1=%str1%%str2%    (合并 str1 和 str2)

6.4  计算字符串长度

没有现成的函数。如下程序利用 goto形成循环,不断将字符串截短1,并记录截短的次数,到字符串变成空时的次数即长度。
set testStr=This is a test string
:: 将 testStr 复制到str,str 是个临时字符串
set str=%testStr%
:: 标签,用于goto跳转
:next1
:: 判断str是不是空,如果不是则执行下边的语句
if not "%str%"=="" (
:: 算术运算,使num的值自增1,相当于num++或者++num语句
set /a num+=1
:: 截取字符串,每次截短1
set "str=%str:~1%"
:: 跳转到next1标签: 这里利用goto和标签,构成循环结构
goto next1
)
:: 当以上循环结构执行完毕时,会执行下边的语句
echo testStr=%testStr%
echo testStr的长度为:%num%

7. 文件处理

清空文件夹   del          del  /s /q test         ( 彻底删除 指定文件 即  清空文件夹)

删除文件夹   rd  rmdir          rd   /s /q test     直接删除整个文件夹

新建文件夹     md  mkdir   ::md %cd%\hello\cd      mkdir %cd%\hello\cd

相关指令含义

   /S  除目录本身外,还将删除指定目录下的所有子目录
/Q 安静模式,带 /S 删除目录树时不要求确认

last. 相关文档

windows bat脚本编写

Bat命令学习

BAT 批处理脚本 教程

bat 命令 常用配置及其用法的更多相关文章

  1. MyWebViewDemo【封装Webview常用配置和选择文件、打开相机、录音、打开本地相册的用法】

    版权声明:本文为HaiyuKing原创文章,转载请注明出处! 前言 封装webview的常用配置和选择文件.打开相机.录音.打开本地相册的用法.[如果想要使用简单的预览功能,可以参考<MyBri ...

  2. Redis常用命令与配置

    常用命令 测试客户端与服务器是否正常连接:ping   ( 补:返回pong表示成功 ) 正则获取键:keys pattern 判断一个键是否存在:exists key 删除一个键:del key 获 ...

  3. Vim常用命令及配置方案

    Vim常用命令及配置方案   几句话 很久之前就接触到vim,初学那阵觉得vim很酷炫,但确实对新手不是很友好.我也就简单看了下基本操作就上手了,但又不是长期在vim下工作,这就导致了每一次重新使用v ...

  4. CentOS6.9下ssh密钥登录配置步骤(免密码登录)和ssh-keygen 命令常用参数

    密钥登录步骤(免密码登录)ssh登录提供两种认证方式:口令(密码)认证方式和密钥认证方式.其中口令(密码)认证方式是我们最常用的一种,出于安全方面的考虑,介绍密钥认证方式登录到linux/unix的方 ...

  5. Debian9.5下ssh密钥登录配置步骤(免密码登录)和ssh-keygen 命令常用参数

    密钥登录步骤(免密码登录)ssh登录提供两种认证方式:口令(密码)认证方式和密钥认证方式.其中口令(密码)认证方式是我们最常用的一种,出于安全方面的考虑,介绍密钥认证方式登录到linux/unix的方 ...

  6. nginx实战操作(常用命令及配置)

    1. nginx介绍 2. nginx常用命令 验证配置是否正确: nginx -t 查看Nginx的详细的版本号:nginx -V 查看Nginx的简洁版本号:nginx -v 启动Nginx:st ...

  7. WebSphere MQ常用命令及配置

    WebSphere MQ常用命令及配置 (2012-06-23 23:09:16) 标签: mq命令 杂谈 分类: MQ [导读]WebSphere MQ常用命令及配置 一,队列管理命令 1,创建队列 ...

  8. Redis常用配置和命令总结

    Redis(全称:Remote Dictionary Server 远程字典服务)是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,并提供多种语言 ...

  9. penghui_031413 Bat命令学习

    penghui_031413   Bat命令学习 基础部分:====================================================================== ...

随机推荐

  1. K8S学习笔记之修改K8S的api-server证书

    K8S的api-server证书包含很多IP和域名,有时候后期才发现证书内有错误,需要重新生成该证书. 修改server-csr.json,修改后基于原来的ca证书重新生成server.perm  s ...

  2. 3 字节的 UTF-8 序列的字节 3 无效 解决

    参考下列应该可以解决,笔者为3. 1.https://blog.csdn.net/hostel_2/article/details/51517361 2.https://blog.csdn.net/u ...

  3. Angular4.x 安装|创建项目|目录结构|创建组件

    Angular4.x 安装|创建项目|目录结构|创建组件 安装最新版本的 nodejs node.js 官网:https://nodejs.org/zh-cn/ 去官网下载 node.js,下一步下一 ...

  4. python简说(四)字符串

    s='.abc.abc.BCD,abc'# new_s = s.strip('.') #默认去掉字符串两边的空格和换行符# print(s.rstrip()) #去掉右边的# print(s.lstr ...

  5. [c/c++] programming之路(2)、kill QQ,弹出系统对话框,吃内存等

    一.删除文件 二.盗取密码的原理 #include<stdlib.h> //杀掉QQ,然后提示网络故障,请重新登陆,弹出高仿界面,获取账号密码,然后打开QQ进行登录 void main() ...

  6. 【Python56--爬取妹子图】

    爬取网站的思路 第一步:首先分析爬取网站的连接地址特性,发现翻页图片的时候连接:http://www.mmjpg.com/mm/1570  ,http://www.mmjpg.com/mm/1569, ...

  7. topcoder srm 661 div1

    problem1 link $N+1$到$M$ 之间的数字要包含所有1到$N$之间出现的质因子的最高幂即可. problem2 link 从第一个节点到第$N$个节点依次考虑.对于第$i$个节点来说, ...

  8. uniGUI试用笔记(五)

    uniGUI的主窗体可以采用多页面方式进行管理,参考网上的资料,都是用TUniFrame + TUniPageControl 来实现,尝试了一下,效果还不错,如下图: 用TUniFrame 能够使用继 ...

  9. 【做题】spoj4060 A game with probability——dp

    赛前做题时忽然发现自己概率博弈类dp很弱,心好慌.(获胜概率或最优解期望) 于是就做了这道题,续了特别久. 一开始列dp式子的时候就花了很长时间,首先搞错了两次,然后忘记了根据上一轮dp值直接确定选什 ...

  10. 分布式知识点总结(来自CS-Notes)

    转载地址:https://github.com/CyC2018/CS-Notes/blob/master/notes/%E5%88%86%E5%B8%83%E5%BC%8F.md 注:如Paxos等的 ...