已被阅读 73 次 | 文章分类:日常随笔 | 2024-11-01 01:03
本文简单介绍.bat和.sh后缀的文件格式
1 bat和sh后缀文件概念
👉.sh文件是Unix/Linux系统上的脚本文件,通常使用Shell语言编写,如Bash或Sh
#!/bin/bash
VAR="Welcome to Xiaobai!"
echo $VAR
👉.bat文件是Windows系统上的脚本文件,通常使用批处理语言编写
@echo off
set VAR=Welcome to Xiaobai!
echo %VAR%
pause
两者都用于执行各种批处理操作,自动化任务、定时执行任务等应用场景.例如可以使用“任务计划程序”来创建一个任务,并指定要运行的脚本
2 详细对比
(1) 文件扩展名
(2) 注释
👉 bat脚本:使用REM或::进行注释
REM This is a comment
:: This is also a comment
👉sh脚本:使用#进行注释
# This is a comment
(3) 变量
👉bat脚本:使用set命令定义变量,引用变量时使用%
set VAR=value
echo %VAR%
👉sh脚本:直接赋值定义变量,引用变量时使用$
VAR=value
echo $VAR
(4) 条件语句
👉bat脚本:使用IF语句
IF "%VAR%" == "value" (
echo VAR is value
) ELSE (
echo VAR is not value
)
👉sh脚本:使用if语句
if [ "$VAR" = "value" ]; then
echo "VAR is value"
else
echo "VAR is not value"
fi
(5) 循环
👉bat脚本:使用FOR循环
FOR %%i IN (1 2 3) DO (
echo %%i
)
👉sh脚本:使用for循环
for i in 1 2 3; do
echo $i
done
(6) 函数
👉bat脚本:没有直接的函数定义方式,通常通过标签和GOTO实现
:my_function
echo This is a function
GOTO :EOF
👉sh脚本:使用function关键字或直接定义
my_function() {
echo "This is a function"
}
(7) 输出重定向
👉bat脚本:使用>和>>进行重定向
echo Hello > output.txt
echo World >> output.txt
👉sh脚本:同样使用>和>>进行重定向
echo "Hello" > output.txt
echo "World" >> output.txt
(8) 运行方式
👉bat脚本:可以直接在命令行中输入脚本名运行,或者双击脚本文件运行
👉sh脚本:通常需要给予执行权限,并在Shell中运行
chmod +x script.sh
./script.sh
3 常见问题
👉问题1:bat文件双击后闪现一下便消失了
解决方法:在命令最后一行加上pause关键词
@echo off
set VAR=Welcome to Xiaobai!
echo %VAR%
pause
👉问题2:bat文件双击运行后汉字乱码
@echo off
REM set 后跟变量名=变量值,注意不能存在空格
set name=小白GIS
REM 然后我们可以采用%%去使用该数据
echo %name%
REM 我们可以直接进行拼接
set age=7
echo %name%有%age%岁
REM set的变量值可以进行界面交互获取(set /P 变量名=提示信息)
set /P yourname=你的名字是:
echo %yourname%
pause
运行后乱码如下
解决方法:打开文件,点击左上角【文件】,然后【另存为】,将编码设置为ANSI
再次双击运行,或者直接将bat文件拖入命令行
👉问题3:cd 找不到路径
解决方法:如果路径中包含空格,则应该将路径加文件名用双引号括起来
QQ:3410192267 | 技术支持 微信:popstarqqsmall
Copyright ©2017 xiaobaigis.com . 版权所有 鲁ICP备17027716号