bat批处理脚本编写

windows下开发微服务项目,一个模块采用一个git分支,每次开发都要手动切换多个分支,不胜其烦,决定采用bat脚本批量切换分支,决定了解下bat脚本常用语法。

1、脚本后缀.bat,例如:test.bat、check_branch.bat、open_wechat.bat
2、rem::表示注释

rem test.bat

:: test.bat

3、echo off 表示关闭命令回显,即不显示命令本身,只显示命令的输出
4、@ 表示对本行命令关闭回显
5、@echo off 表示关闭命令回显,包括关闭本行命令回显

@echo off
rem it's test.bat

6、echo 表示输出内容到屏幕,echo后面跟着变量或字符串

@echo off
rem it's test.bat
echo hello,world

7、pause 作用是将dos窗口暂停关闭。pause可以用来查看脚本运行结果或调试脚本

@echo off
rem it's test.bat
echo hello,world

pause

8、title 用来设置dos窗口标题

@echo off
rem it's test.bat
title test脚本调试
echo hello,world

pause

9、chcp 65001 表示使用65001编码,解决中文乱码的问题

@echo off
chcp 65001
rem it's test.bat

title test脚本调试
echo hello,world

pause

在这里插入图片描述

上面示例脚本可以作为每个脚本的标配

10、set用来设置变量,使用变量则是%变量名%,系统变量则直接使用(省略了设置的过程),多个变量拼接就是顺着写。如果需要接收控制台输入的参数则是set /p 接收变量=提示语/p可以理解为param

@echo off
chcp 65001
rem it's test.bat

title test脚本调试

set name=buddha
echo %name%

echo %date% %time%

rem 接收控制台输入参数
set /p age=请输入年龄:

echo %age%

pause

在这里插入图片描述

11、获得当前路径

%cd%

%~dp0

12、进入指定目录,cd + 相对路径/绝对路径

cd test

13、清屏

cls

14、start + 文件路径,就是打开某个普通文件或者程序文件

@echo off
chcp 65001
rem it's test.bat

title test脚本调试

rem 打开微信,路径如果有空格,则需要用引号
start "" "C:\Program Files\Tencent\WeChat\WeChat.exe"

start test\test.txt

pause

15、函数声明使用:goto标识符可用于函数跳转,其中goto:eof可用于停止往下执行命令行。call可用于调用函数或调用别的bat脚步

@echo off
chcp 65001
rem it's test.bat

title test脚本调试

:func_test
    echo 这是一个test函数...
    echo 这是一个test测试函数
    pause
    goto :eof

:func_main
    echo 这是一个main函数...
    echo 这是一个main测试函数
    pause
    goto :eof

pause

在这里插入图片描述

bat脚本的函数跟其它语言不太一样,不需要调用。如果没有命令控制,则会顺序执行

16、if用于条件判断,%errorlevel%是脚本内置变量,当值等于0,表示脚本执行到目前命令行还没有报错

@echo off
chcp 65001
rem it's test.bat

title test脚本调试

:func_test
    echo 这是一个test函数...
    echo 这是一个test测试函数
    if %errorlevel%==0 (
        call :func_main
    )
    pause
    goto :eof

:func_main
    echo 这是一个main函数...
    echo 这是一个main测试函数
    pause
    goto :eof

pause

17、for用于循环

  • dir /b 路径,用于获得指定目录下的所有文件和文件夹
  • for /f,遍历指定目录下所有的文件和文件夹
  • for /d,遍历指定目录下所有的文件夹
  • for /r,遍历指定目录下所有的文件和文件夹中文件
  • %%i,循环遍历子变量,前面有两个%
@echo off
chcp 65001
rem it's test.bat

title test脚本调试

for /f %%i in ('dir /b "%cd%"') do (
    echo %%i
)

pause

18、delims分隔符读取的字符串会以这些分隔符进行拆分成多个子字符串;tokens读取字符串会以索引值给变量

@echo off
chcp 65001
rem it's test.bat

title test脚本调试

rem 这里是逗号或斜线为分隔符
for /f "delims=,/" %%i in (test.txt) do (
    echo %%i
)

pause

在这里插入图片描述

@echo off
chcp 65001
rem it's test.bat

title test脚本调试

for /f "delims=,/ tokens=1,2" %%a in (test.txt) do (
    echo 索引1:%%a
    echo 索引2:%%b
)

pause

在这里插入图片描述
19、>> 追加的方式重定向到文件夹中
20、>nul 将结果抛弃
21、字符串中是否包含某个字符串
语法:

echo 字符串 | findstr 子字符串 >nul && (
        包含时的情况
)
包含的情况如下

示例:

@echo off
chcp 65001
rem it's test.bat

title test脚本调试

echo "hello world" | findstr "world" >nul && (
        echo 包含
        pause
        goto :eof
)
echo 不包含
pause
goto :eof

22、字符串截取
示例:

@echo off
chcp 65001
rem it's test.bat

title test脚本调试

set teststr=*213123 hello world##
echo %teststr%

set str=%teststr:~1,-2%
echo %str%

pause

在这里插入图片描述
23、copy用来复制文件或文件夹

24、del 用来删除文件
25、setlocal enabledelayedexpansion,set local enable delayed expansion,意思就是扩展本地环境变量延迟
26、color 0A,设置背景色为黑色,前景色为淡绿色

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

综合示例:

@echo off
rem 批量切换代码bat脚本
chcp 65001
setlocal enabledelayedexpansion
color 0A

set /p input=请输入要切换的分支:


set DestPath=./
rem 循环当前目录里所有的文件夹
for /f "usebackq delims=" %%i in (`dir /b "%DestPath%"^|findstr -S "bbc"`)  do (
   if exist %%i\ (
		cd %%i
		git checkout -f %input%
		git fetch
		:: git status
		cd ../
   )
)

pause
  • 10
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: -bat 批处理语法 -noeac 是一种在批处理脚本中使用的选项。这个选项的作用是禁用批处理脚本中的错误自动纠正功能。在默认情况下,当批处理脚本中发现错误时,系统会尝试自动修复这些错误,以保证脚本能够继续运行。然而,有时候我们不希望系统自动修复错误,而是希望脚本在遇到错误时立即停止执行。 使用 -noeac 选项可以达到禁用错误自动修正功能的效果。当在批处理脚本中添加了这个选项后,系统会忽略错误,并将错误信息输出到屏幕上,然后终止脚本的执行。这样可以及时发现脚本中的错误,并做出相应的修改,以确保脚本能够正常执行。 需要注意的是,禁用错误自动修正功能可能会导致脚本在遇到错误时无法继续执行。因此,在使用 -noeac 选项时,我们需要特别小心,确保脚本中的语法和逻辑都是正确的,以免出现严重的错误导致脚本无法正常执行。同时,及时查看错误信息并进行修正也是很重要的,这样可以提高脚本的可靠性和稳定性。 总的来说,-bat 批处理语法 -noeac 选项是一种在批处理脚本中禁用错误自动修正功能的方法,通过该选项可以在脚本运行时及早发现并修复错误,确保脚本能够正常执行。 ### 回答2: "bat 批处理语法 -noeac" 是指在批处理脚本中使用 -noeac 参数的情况。批处理是一种用于在 Windows 系统中自动化任务的脚本语言。 -noeac 是缩写,含义是 "No Extended Auto Codepage"。当使用 -noeac 参数时,批处理脚本不会自动选择扩展的自动代码页。 自动代码页是一种在批处理脚本中处理不同语言和字符集的功能。它可以根据系统中的本地设置自动切换代码页。但有时,可能需要禁用此功能,并手动指定代码页。 通过使用 -noeac 参数,批处理脚本将不再依赖于系统的自动代码页切换,而是需要手动指定所需的代码页。这样可以确保脚本在不同的系统和环境中始终以相同的代码页运行,确保脚本的一致性和可移植性。 要使用 -noeac 参数,在批处理脚本的开头添加以下内容: ``` @echo off chcp <代码页> ``` 其中,<代码页> 是你所需的代码页的数字。例如,要使用 UTF-8 代码页,可以将 <代码页> 设置为 65001。 总之,-noeac 是批处理脚本语法中的一种参数,用于禁用自动选择代码页的功能,确保脚本在不同环境中以相同的代码页运行。 ### 回答3: 在BAT批处理语法中,-noeac是一个无效的选项或参数。BAT批处理语法是一种用于编写批处理文件的脚本语言,用于自动化执行一系列命令和任务。 在BAT批处理中,可以使用各种命令和语法进行条件判断、循环、变量赋值、文件操作等操作。但是在批处理语法中,并没有名为-noeac的选项或参数。 如果你遇到了一个命令或软件提示使用-noeac选项,那可能是该命令或软件自定义的参数,与BAT批处理语法无关。在这种情况下,你应该查阅该命令或软件的官方文档或手册,以了解-noeac选项的具体含义和用法。 总之,从BAT批处理语法角度来说,-noeac不是一个有效的选项或参数。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员buddha

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值