第三章 bat批处理命令

jenkins在win上运行时需要配合.bat。可参考作者至尊宝的文章学习。

一、基础语法:
1.批处理文件是一个“.bat”结尾的文本文件,这个文件的每一行都是一条DOS命令。可以使用任何文本文件编辑工具创建和修改。
2.批处理是一种简单的程序,可以用 if 和 goto 来控制流程,也可以使用 for 循环。
3.批处理的编程能力远不如C语言等编程语言,也十分不规范。
4.每个编写好的批处理文件都相当于一个DOS的外部命令,把它所在的目录放到DOS搜索路径(path)中,即可在任意位置运行。
5.C:\AUTOEXEC.BAT 是每次系统启动时都会自动运行的,可以将每次启动时都要运行的命令放入该文件中。
6.大小写不敏感(命令符忽略大小写)
7.批处理的文件扩展名为 .bat 或 .cmd。
8.在命令提示下键入批处理文件的名称,或者双击该批处理文件,系统就会调用Cmd.exe来运行该文件。

以下是学习时的资料

1,echo 显示内容
echo 内容(类似log)
echo on/off (关闭或开启回显)
@echo off 内容 pause(暂停)

@ 符号 表示@后面的命令不显示

2,cd 进入目录
cd 内容(path路径,进入到对应的文件夹下面,如果不是在当前盘符,需要执行 盘符:(e:))
cd … (进入父目录)
cd /d e:\ (进入盘符根目录)
cd e: (显示之前盘符所在目录)
d: (盘符:表示进入某个盘(记录上次进入这个盘的目录,直接进入到对应目录)) == cd /d d:

3 dir 显示目录中的内容
dir (显示当前目录中字文件夹和文件 包含文件信息)
dir /b (只显示当前目录中的子文件夹与文件的文件名)
dir /p (分页显示当前目录中的子文件夹与文件)
dir /ad (显示当前目录中的子文件夹)
dir /ad (显示当前目录中的文件)
dir ttt.txt (显示ttt.txt文件的信息)
dir 文件夹 (显示该文件夹下面子文件夹和文件 包含文件信息)

4 tree 显示目录结构
tree 路径 (显示对应文件夹里面的目录结构)

5 ren 文件夹或文件改名
ren ttt.txt 测试.txt (将当前目录下的ttt.txt改名为测试.txt)
ren e:\Work\测试.txt 测试2.txt (直接改对应目录下面的文件夹名)

6 md 创建目录
md 文件夹名 (在当前目录中创建文件夹)
md e:\work\测试123 (直接在对应目录创建文件夹)

7 rd 删除目录
rd 文件夹名 (在当前目录中删除文件夹)
rd e:\work\测试123 (直接在对应目录删除文件夹)
rd 测试 /s /q (删除当前目录中的文件夹,包括子文件夹和子文件 /s表示删除子文件夹与子文件 /q表示不需要删除请求,安静模式)

8,copy 拷贝文件
copy 测试2.txt e:\ (将测试2文件拷贝到e盘目录下)
copy 测试2.txt 路径+文件名 (将文件拷贝到对应路径下,并且重命名)
copy /y 测试2.txt e:(不需要询问是否覆盖)
copy /y 文件夹 e:\ (拷贝文件夹下面所有文件到对应目录,不包括子目录)
copy 测试2.txt + (复制文件到自己,实际修改了文件日期)
copy /y 测试2.txt+新建文本文档.txt 新.txt (将当前目录下的测试2.txt与新建文本文档.txt合并写入新.txt )

9,xcopy 更强大的复制命令
xcopy 文件夹路径 目标文件夹 (将文件夹里面的所有内容拷贝到目标文件夹里面 直接执行不包含子目录)
xcopy 文件夹路径 目标文件夹 /s (将文件夹里面的所有内容拷贝到目标文件夹里面,包含子目录)
xcopy 文件夹路径 目标文件夹 /d:月-日-年 /s /y (将文件夹里面这个时间改变之后的文件拷贝到目标文件夹里面,包含子目录)

10,move 移动文件
move 测试2.txt e:\ (移动测试2.txt到e盘) /y
move *.txt e:\ (移动所有后缀为txt到e盘) /y
move 测试文件夹 e:\new (移动文件夹到new文件夹,如果存在new文件夹,那么直接移到到该目录下面,如果不存在,则将移动的文件夹移动到对应目录后,改名为new)

11,del 删除文件 不会删除目录及子目录
del 文件夹 (删除当前目录下的文件夹中所有非只读文件,子目录下的文件不删除,并且还会进行删除前确认 == del new* )
del /f 文件夹 (含只读文件,子目录下的文件不删除,并且还会进行删除前确认 == del /f new* )
del /f /s /q 文件夹 (含只读文件,含子目录下的文件)
del /ar . (删除当前目录下所有只读文件)
del /a-s . (删除当前目录下除系统文件以外的所有文件)

12,replace 替换文件
replace e:\work\测试2.txt e:\q (使用e:\work\测试2.txt 去替换 e盘下面q文件夹下面的测试2.txt)

13,bat窗口
@echo off
title 测试bat
color 03
mode con cols=50 lines=100
pause


 0 = 黑色                     8 = 灰色
 1 = 蓝色                     9 = 淡蓝色
 2 = 绿色                     A = 淡绿色
 3 = 湖蓝色                  B = 淡浅绿色
 4 = 红色                     C = 淡红色
 5 = 紫色                     D = 淡紫色
 6 = 黄色                     E = 淡黄色
 7 = 白色                     F = 亮白色

14,文件写入内容
e:
cd e:\Work
echo bat测试命令 >> 测试2.txt (>>直接写入到原来的尾部) (> 表示覆盖写入)

15,type 显示文本内容
type 测试2.txt

16,find 文件中搜索字符(findstr)
find /n /i “测试” 测试2.txt (/n 显示行号 /i忽略大小写)

17,参数 %1 - %9

18,rem 注释

19,if语句 goto语句
if “%1” == “qwer” (“参数” == “参数”)
goto 名称 (查找是根据 :名称 进行匹配)

@echo off
if “%1” == “qwer” (
echo 包含qwer
echo 111
) else (
echo 不包含qwer
)
pause
(注意 1,括号所在位置 2,括号与关键字中间的空格)

if “%1” == “qwer” 正常的字符串判断
if {%1}=={} 判断是否有参数
if exist 学习笔记.txt 判断文件是否存在

20,exit 退出

21,call 命令,调用其他的.bat .cmd
call tt2

22,start 启动一个程序 (程序路径)

23,choice
@echo off
choice /c ync /m “确认Y,否N,取消C.” (/m代表显示的信息)
if errorlevel 3 goto C
if errorlevel 2 goto N
if errorlevel 1 goto Y

:Y
echo 确定
goto C

:N
echo 否
goto C

:C
echo 取消
pause

24,for
cmd窗口里: for %i in (command1) do command2 (引用变量为%i)
在bat中: for %%i in (command1) do command2 (引用变量为%%i)
在command1 命令里面切分元素的时候,使用空格,逗号,等号作为分隔符
示例1:
cmd窗口里: for %i in (abc) do echo %i
在bat中:for %%i in (a b,c) do echo %%i

/L 开关控制循环次数
for /L %i in (start,step,end) do command2 (start开始的i,step递增值,end结束值)
示例2:
for /l %i in (1,2,10) do echo %i 递增为2,1 3 5 7 9

/F delims=; (每一行以;为分隔符)
for /f “delims=;” %%i in (学习笔记.txt) do echo %%i

tokens=2 代表取每一行的第几列 tokens=1,2(取第一列和第二列) tokens = (取全部)
for /f "tokens=1,
delims= " %%i in (学习笔记.txt) do echo %%i %%j

skip = 2 忽略前几行
for /f "skip=2 tokens=* delims= " %%i in (学习笔记.txt) do echo %%i

eol 忽略以什么字符开始的那一行
for /f "eol=f skip=2 tokens=* delims= " %%i in (学习笔记.txt) do echo %%i

usebackq (反转) for %%i in (command1) do command2
for /f "usebackq tokens=* delims= " %%i in (“学习笔记.txt”) do echo %%i
for /f "usebackq tokens=* delims= " %%i in (‘echo siki学院’) do echo %%i

25, date time
2019/01/16 周三
%date:~0,4% 年
%date:~5,2% 月
%date:~8,2% 日
16:59:56.76
%time:~0,2%时
%time:~3,2%分
%time:~6,2%秒

26, set 赋值 %变量%取值
set t=%time:~0,2%
echo %t%

27,字符串操作
%time:~0,2% 字符串截取

替换
set t=“siki学院牛逼!”
echo 替换前: %t%
echo 替换后: %t:牛逼=超级牛逼%
echo t = %t%
set “t=%t:牛逼=超级牛逼%”
echo t =%t%

拼接
set t=siki学院
set t2=牛逼
echo %t%%t2%
echo t=%t%
echo t2=%t2%
set “t=%t%%t2%”
echo t=%t%

扩充 C:\Users\yons\Desktop\学习笔记.txt
~I - 删除任何引号("),扩充 %I
  %~fI - 将 %I 扩充到一个完全合格的路径名
  %~dI - 仅将 %I 扩充到一个驱动器号
  %~pI - 仅将 %I 扩充到一个路径
  %~nI - 仅将 %I 扩充到一个文件名
  %~xI - 仅将 %I 扩充到一个文件扩展名
  %~sI - 扩充的路径只含有短名
  %~aI - 将 %I 扩充到文件的文件属性
  %~tI - 将 %I 扩充到文件的日期/时间
  %~zI - 将 %I 扩充到文件的大小
  %~ P A T H : I − 查 找 列 在 路 径 环 境 变 量 的 目 录 , 并 将     到 找 到 的 第 一 个 完 全 合 格 的 名 称 。 如 果 环 境 变 量 名     未 被 定 义 , 或 者 没 有 找 到 文 件 , 此 组 合 键 会 扩 充 到     空 字 符 串     可 以 组 合 修 饰 符 来 得 到 多 重 结 果 :                 PATH:I - 查找列在路径环境变量的目录,并将 %I 扩充   到找到的第一个完全合格的名称。如果环境变量名   未被定义,或者没有找到文件,此组合键会扩充到   空字符串   可以组合修饰符来得到多重结果:   %~dpI - 仅将 %I 扩充到一个驱动器号和路径   %~nxI - 仅将 %I 扩充到一个文件名和扩展名   %~fsI - 仅将 %I 扩充到一个带有短名的完整路径名   %~dp PATH:I        :        PATH:i - 查找列在路径环境变量的目录,并将 %I 扩充
  到找到的第一个驱动器号和路径。
  %~ftzaI - 将 %I 扩充到类似输出线路的 DIR

echo %~nx1 (文件加扩展名)
echo %~pd1 (路径)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: @echo off echo 正在查询服务器的CPU,内存,网卡等相关信息 wmic /node:"192.168.150.13" /user:"administrator" /password:"password" cpu get name, caption, deviceid, currentclockspeed, maxclockspeed /format:csv wmic /node:"192.168.150.13" /user:"administrator" /password:"password" memorychip get BankLabel, Capacity, MemoryType, TypeDetail /format:csv wmic /node:"192.168.150.13" /user:"administrator" /password:"password" nic get name, index, Speed, MACAddress /format:csv pause ### 回答2: 你好!以下是一个完整的.bat批处理命令,用于查询服务器的CPU,内存,网卡等相关信息,然后暂停等待。 @echo off echo 正在查询服务器信息... echo CPU信息: wmic cpu get Name, Manufacturer echo 内存信息: wmic memorychip get BankLabel, Capacity, MemoryType, Manufacturer echo 网卡信息: wmic nic get Name, Manufacturer, Speed echo 服务器IP信息: ipconfig | findstr /i "IPv4 Address" pause exit 说明: 1. 在批处理命令的第一行使用@echo off可以关闭命令行的显示,使输出信息更清晰。 2. 使用echo命令可以向屏幕打印信息。 3. 使用wmic命令可以查询各种系统信息,本例中使用了wmic cpu、wmic memorychip和wmic nic命令分别查询CPU、内存和网卡信息。 4. 使用ipconfig命令查询服务器的IP信息,并使用findstr命令筛选出含有"IPv4 Address"的行,这样可以只显示IPv4地址信息。 5. 使用pause命令暂停命令的执行,等待用户输入任意键继续。 6. 使用exit命令退出批处理命令的执行。 希望这个批处理命令能帮助到你!如果还有其他问题,请随时向我提问。 ### 回答3: 您好!以下是一个查询服务器相关信息的批处理命令示例: @echo off set ip=192.168.150.13 echo 正在查询服务器信息... echo. wmic /node:%ip% cpu get name, NumberOfCores, NumberOfLogicalProcessors echo. wmic /node:%ip% os get name, TotalVisibleMemorySize echo. wmic /node:%ip% networkadapter get name, Speed pause 希望以上回答能对您有所帮助!如有其他疑问,请继续追问

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值