Windows下bat脚本运用

Windows批处理脚本(.bat文件)是一种用于在Windows操作系统上执行一系列命令的脚本文件。

一、bat脚本基本介绍

基础语法

  • 变量操作:在bat脚本中,可以通过set命令设置变量,使用%variable%来引用变量的值。
  • 控制结构:包括if条件判断、for循环等,用于控制脚本的流程。
  • 文件操作:如copymovedel等命令,用于文件的复制、移动和删除。
  • 目录操作:mkdir用于创建目录,rmdir用于删除目录。

常用功能

  • 界面管理:可以通过echopause等命令与用户交互。
  • 网络管理:虽然不是批处理的主要用途,但也可以通过某些工具实现网络相关的操作。

编写和运行

  • 编写:可以使用任何文本编辑器编写bat脚本,例如Notepad。
  • 运行:双击bat文件或在命令行中输入文件名即可运行。

应用场景

  • 自动化任务:自动执行重复性的工作,如备份文件、系统维护等。
  • 简化操作:将复杂的操作序列简化为一个脚本,提高效率。
  • 集成其他程序:可以与其他程序结合使用,实现更复杂的功能。

二、bat脚本关于中文显示乱码问题:

        在bat 脚本文件中,如果中文不是ANSI编码,就会出现乱码。可以采用Windows操作系统平台自带的记事本打开脚本文件,点击菜单【文件】-【另存为】操作,选择ANSI编码进行保存。再次运行,中文乱码问题将得到解决。

三、bat脚本常见命令使用介绍:

注释命令:  rem 或 ::  

Bash
rem 显示日期和时间
echo %date%
echo %time%

echo

Bash
echo on 批处理命令在执行时显示自身命令行
echo off 批处理命令在执行时不显示自身命令行
@echo off 关闭echo off命令行自身的显示
echo Hello World 打印Hello World
echo. 输出空行,"."可以用,:;”/[\]+等任一符号替代
echo test > file.txt 创建包含字符test的file.txt文件
echo 文件内容>>文件名   追加内容到文件
echo y | del d:\temp\*.txt 输入y确认删除

暂停:pause

Bash
pause 等待并提示"请按任意键继续. . ."
pause > nul 等待但不出现提示语
echo wait a moment.. & pause > nul 输出指定输出语"wait a moment.."并等待操作

常用系统变量读取

Shell
%CD%  获取当前目录
%PATH%  获取命令搜索路径
%DATE%  获取当前日期。
%TIME%  获取当前时间。
%RANDOM% 获取 0 和 32767 之间的任意十进制数字。
%ERRORLEVEL% 获取上一命令执行结果码

变量读取:使用%variable%可以获取变量值

变量设置: 使用set命令显示、设置或删除 windows环境变量

Bash
SET [variable=[string]] #variable表示变量名,string表示变量值

eg:
set Year=%date:~2,2%

set [[/a [expression]] [/p [variable=]] string]
/a:将string设置为可以计算的数学表达式。
/p:将variable设置成在线输入的string,用于读取输入

eg:
@echo off
set /a value = 1 + 2 * 5
echo %value%
pause

if "%1%" neq "" (
    set dir=%1%
) else (
    set /p dir=Please Input Dir:
)

Start :  启动一个单独的窗口以运行指定的程序或命令,程序继续向下执行

Bash
START [command/program] [parameters]

eg:
start C:\Users\dell\Desktop\databaseBrowser\SQLite\DB_SQLite.exe database\mate.db

cls 清除屏幕内容

goto :EOF   表示结束不再继续下面的内容

Bash
rem check input val:
if "%1%"=="" (
goto :EOF
)

Call  在一个脚本里面调用另一个脚本

Bash
call time_sync.bat

比较指令

Bash
EQU - 等于
NEQ - 不等于
LSS - 小于
LEQ - 小于或等于
GTR - 大于
GEQ - 大于或等于

字符串截取。使用命令 echo %var:~n,k%,其中"%var",表示待截取字符的字符串,"~"取字符标志符,"n”表示字符截取起始位置,"k" 表示截取个数

Bash
@echo off
set str=superhero
echo str=%str%
echo str:~0,5=%str:~0,5%
echo str:~3=%str:~3%
echo str:~-3=%str:~-3%
echo str:~0,-3=%str:~0,-3%
pause

输出如下:
str=superhero
str:~0,5=super
str:~3=erhero
str:~-3=ero
str:~0,-3=superh
请按任意键继续. . .

copy 文件复制命令

Bash
copy d:\temp\file1.txt d:\temp1 将文件file1.txt复制到temp1目录,有相同文件提示
copy d:\temp\file1.txt d:\temp1 /y 将文件file1.txt复制到temp1目录,有相同文件覆盖原文件,不提示
copy d:\temp1\* d:\temp2 /y 将temp1目录下的所有文件复制到temp2目录,有相同文件覆盖原文件,不提示

xcopy 目录复制命令

Bash
xcopy temp1 d:\temp2 /y 将temp1目录下的文件复制到temp2目录,不包括temp1子目录下的文件。
xcopy temp1 d:\temp2 /s /e /y 将temp1目录下的文件复制到temp2目录,包括temp1子目录下的文件

type 显示文件内容命令

Bash
type file2.txt 查看file2文件内容
type file1.txt file2.txt  #查看file1和file2文件内容
type file1.txt > file2.txt  #将file1.txt文件内容重定向到file2.txt
type nul > file1.txt #创建文件

ren 重命名文件命令

Bash
ren d:\temp\file2.txt file3.txt 修改temp目录下的file2.txt文件名为file3.txt

del 删除文件命令

Bash
del c:\temp\file.txt 删除temp目录下的file.txt文件
del c:\temp\*.txt  删除temp目录下的后缀为.txt的文件

 cd 显示当前目录或切换目录

Bash
cd c:\temp 切换到temp目录,当前目录是c盘
cd /c c:\temp 切换到temp目录,当前目录非c盘
cd .. 切换到上一级目录

mkdir 创建目录

Bash
mkdir info 在当前目录下创建info目录
mkdir d:\temp\info 在temp目录下创建info 目录,如果temp目录不存在,自动创建

rmdir 删除目录

Bash
rmdir d:\temp 删除空目录temp,非空则删除失败
rmdir d:\temp /s /q 删除temp目录,包括子目录(/s),并且删除时不提示(/q)

dir 显示目录下的子目录和文件

Bash
dir d:\temp 显示temp目录下的文件和目录信息,显示信息包含日期、时间、文件类型和文件名
dir d:\temp /a:a /b 只显示temp目录下(不包括子目录)的文件的绝对路径,不显示日期、时间、文件类型和文件名
dir d:\temp /b /s /o:n /a:a  显示temp路径下(包括子目录)的所有文件的绝对路径。输出文件按照文件名数字顺序排序
dir d:\temp\*.txt /a:a /b /o:n 显示.txt后缀文件,并且按照文件名顺序排序(/on),其他排序方法查看help dir

bat脚本运用案例(一键日志抓取):
https://download.csdn.net/download/Psyduck_ing/89237981

  • 17
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值