Windows脚本入门
一、batch脚本
1.1 回显打印
@ #关闭单行回显
echo off # 从下一行开始关闭回显
@echo off # 从本行开始关闭回显。
echo on # 从下一行开始打开回显
@echo xxxx # 打印xxx内容
1.2 目录操作
dir # 显示当前目录中的文件
cd /d D:\\Tools\\sswenv # 切换到指定路径
cd xxx # 不带/d的路径切换,不能切换盘符
md xxx # 创建目录
rd xxx # 删除目录
1.3 变量定义及引用
set zip7=C:\Program Files\7-Zip\7z.exe # 设置变量
%zip7% # 引用变量
%1 # 代表第一个入参,如在被调用batch脚本中用set parameter=%1解析参数
1.4 调用脚本
call %WORKSPACE%\Scripts\activate # 比如激活python虚环境
call build.bat # 批处理中调用别的批处理脚本
call build.bat param1 # 调用批处理并传入参数build.bat中解析参数:
@echo off
set param_in_build=%1
示例:
@echo off
@echo ==========Start Activate python==========
set VENV_PATH=D:\Tools\pyenv
:: 激活虚拟环境
call %VENV_PATH%\Scripts\activate
@echo ==========End Activate python==========
二、powershell脚本
powershell命名习惯:大写开头加中划线分隔单词。
powershell是windows上类shell的一种存在,但是还是保留了windows的特性,比如:不区分大小写。
powershell里有很多命令的调用方式可以沿用shell中的调用方式,比如解压:tar
2.1 回显打印
调用Write-Host进行打印
Write-Host "==========Start Build=========="
2.2 目录操作
可以用cd 进行目录切换
Set-Location -Path "C:\Program Files\" #也可以用Set-Location进行目录切换
Join-Path # 拼接路径
示例:
if (-Not (Test-Path (Join-Path $WIN_CODE_PATH $ScriptName))) {Write-Error "Failed to find script: $ScriptName in $WIN_CODE_PATH"exit 1
}
以上这段代码表示判断脚本$ScriptName不存在的话,则退出
2.3 变量定义及引用
$SCRIPT_PATH = $PSScriptRoot # 获取当前powershell脚本的路径
$WIN_CODE_PATH = (get-item $PSScriptRoot).parent.parent.FullName # 获取脚本路径的以上二级的路径
$dFlag = $true # 布尔值类变量赋值test
$zip7="C:\Program Files\7-Zip\7z.exe"
引用7z工具进行解压示例:
& $zip7 x "$tarFilePath" -o"$extractionPath" -y
2.4 函数及脚本调用
函数调用:
function Prepare-Sourcecode {# 初始化逻辑$param1 = $args[1]$param2 = $args[2]...
}
Prepare-Sourcecode -ArgumentList $WORKSPACE $projectPathpowershell调用脚本都& 来调用:
powershell调用powershell脚本
& $WORKSPACE\build.ps1 “apple”