我是靠谱客的博主 清爽曲奇,最近开发中收集的这篇文章主要介绍PowerShell脚本学习前言1. PowerShell与cmd的区别2. PowerShell脚本待续,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

PowerShell脚本学习

  • 前言
  • 1. PowerShell与cmd的区别
  • 2. PowerShell脚本
    • 2.1 xxx-Item
      • 2.1.1 创建目录
      • 2.1.2 创建文件
      • 2.1.3 删除文件
      • 2.1.4 删除目录
    • 2.2 文件操作
      • 2.2.1 添加内容
      • 2.2.2 查看内容
      • 2.2.3 设置内容
      • 2.2.4 添加内容
    • 2.3 PowerShell执行策略
      • 2.3.1 查看当前执行策略
      • 2.3.2 设置策略
    • 2.4 变量操作
      • 2.4.1 定义变量- $x方式(推荐)/Set-Variable
      • 2.4.2 查看变量
      • 2.4.3 清空变量
      • 2.4.5 删除变量
      • 2.4.6 计算变量
      • 2.4.7 常量
      • 2.4.7 变量不同类型自带API的使用
    • PowerShell自带的变量
    • 3.1 系统变量
      • 3.1.1 表值类型
      • 3.1.2 数组对象
    • 将文件复制到另一个文件夹下
  • 待续


前言

运行Bamboo的时候,有script需要用到PowerShell,记录一下学习过程。


1. PowerShell与cmd的区别

Windows PowerShell® 是基于任务的命令行管理程序和脚本语言,专为进行系统管理而设计。 在 .NET Framework 的基础上构建的 Windows PowerShell 可帮助 IT 专业人士和高级用户控制和自动执行 Windows 操作系统以及在 Windows 上运行的应用程序的管理。

powershell和cmd区别:1、CMD写的BAT脚本我们看作是面向过程的,而PowerShell则是面向对象的,是一种站在使用者的角度进行脚本的编写;2、CMD只能执行基本的任务,PowerShell因为是基于【.NET】面向对象的。


2. PowerShell脚本

2.1 xxx-Item

2.1.1 创建目录

对大小写不敏感

New-Item test -ItemType Directory 

2.1.2 创建文件

cd .test
New-Item test.txt -ItemType File

2.1.3 删除文件

Remove-Item test.txt

2.1.4 删除目录

Remove-Item test

2.2 文件操作

2.2.1 添加内容

Add-Content .test.txt "Hello world"

2.2.2 查看内容

Get-Content .test.txt

2.2.3 设置内容

Set-Content .test.txt "Happy new year"

提示:设置内容是覆盖,而添加是在文件末添加内容

2.2.4 添加内容

"william fu!"| out-file -Append .test.txt

2.3 PowerShell执行策略

2.3.1 查看当前执行策略

Get-ExecutionPolicy

默认为:RemoteSigned
策略说明:

类型执行权限
Restricted为脚本不能运行,是默认设置
Unrestricted为允许所有的脚本运行
RemoteSigned为只能运行本地创建的脚本,不能运行从网上下载的脚本,除了有数字签名证书
Allsigned为只运行有受信任的发布者签名的脚本

2.3.2 设置策略

Set-ExecutionPolicy Unrestricted

需要管理员权限打开PowerShell
在这里插入图片描述

2.4 变量操作

2.4.1 定义变量- $x方式(推荐)/Set-Variable

$a = 1
$str = "hello world"
Set-Variable a 1
Set-Variable str "helloworld"

可以重置变量

2.4.2 查看变量

# (查看所有变量)
Get-Variable
# 查看变量a
Get-Variable a
# 查看变量str
Get-Variable str
# 查看变量是以s开头的,不区分大小写
Get-Variable s*

1.查看所有变量查看所有变量2.查看变量 a
在这里插入图片描述

3.查看变量 str
在这里插入图片描述

4.查看以s开头的变量(不区分大小写)
在这里插入图片描述

2.4.3 清空变量

# 清空变量a
Clear-Variable a
# 清空多个变量,与查看变量一样的操作
Clear-Variable str*

1.清空变量a
在这里插入图片描述
2.清空多个变量
在这里插入图片描述
这只是对变量的值进行清空,变量实际是还存在的

2.4.5 删除变量

# 删除变量a
Remove-Variable a
# 删除多个变量,与前面清空、查询是一样的操作
Remove-Variable str*

1.删除变量a在这里插入图片描述
2.删除多个变量
在这里插入图片描述

2.4.6 计算变量

  • 四则运算、赋值运算符、逻辑运算
$interget1=1
$interget2=2
# 加、减、乘、除、模
$interget3=$interget1(+|-|*|/|%   =|+=|-=|*=|/=|%=   !|not|and|or)$interget2

1. 加、减、乘、除、模

在这里插入图片描述
在这里插入图片描述
字符串操作

$str="hello"
$str1="world"
# 输出,查看结果
Write-Host ($str+$str1)
# 字符串截取
$str.Substring(0,5)

1.字符串操作
在这里插入图片描述
在这里插入图片描述

注意:使用Write-Host时后面的内容需要使用 () 先进行计算,否则运算符会当作字符串处理

  • 比较运算符
比较运算符说明
-eq等于
-ceq区分大小写
-ne不等于
-gt大于
-ge大于等于
-lt小于
-le小于等于
-contains包含
if ($full -eq "-f")
{
  # List of additional solutions required for full build
  $solutionPaths += (
        "../",
    "../modules/file-management"
  ) 
}else{ 
  Write-host ""
  Write-host ":::::::::::::: !!! You are in development mode !!! ::::::::::::::" -ForegroundColor red -BackgroundColor  yellow
  Write-host "" 
} 

  • example

在这里插入图片描述

2.4.7 常量

Set-Variable -Name conpany -Value "联想信息产品" -Option Constant
# 尝试改变变量值,其实这里会异常的
$conpany="联想电子信息"

  • test
    在这里插入图片描述

2.4.7 变量不同类型自带API的使用

$date=Get-Date
# 打印年月日部分
Write-Host $date.Date
# 变量增加一天
Write-Host ($date.AddDays(1))

在这里插入图片描述

PowerShell自带的变量

名称说明
$^前一命令行的第一个标记
$$前一命令行的最后一个标记
$_表示表示当前循环的迭代变量。
$?前一命令执行状态,成功(Ture) 或者 失败(False)
$Args为脚本或者函数指定的参数
$Error错误发生时,错误对象存储于变量Error 中
$Foreach引用foreach循环中的枚举器
$Home用户的主目录
$Host引用宿主 POWERSHELL 语言的应用程序
$Input通过管道传递给脚本的对象
$Switchswitch 语句中的枚举器
# Build all solutions
foreach ($solutionPath in $solutionPaths) {    
    $solutionAbsPath = (Join-Path $rootFolder $solutionPath)
    Set-Location $solutionAbsPath
    dotnet build --configuration Release
    # $? 前一命令执行状态,成功(Ture) 或者 失败(False)
    if (-Not $?) {
        Write-Host ("Build failed for the solution: " + $solutionPath)
        Set-Location $rootFolder
        exit $LASTEXITCODE
    }
}

3.1 系统变量

类型说明
[int][long][string][char][bool][byte][double][decimal][single]表值类型
[array]数组对象
[xml]XML对象
[hashtable]哈希表对象,类似于一个字典对象

3.1.1 表值类型

[int] $inter="1"
# 改变量值,这会异常
$inter="1a"
[string] $str="hello world"

在这里插入图片描述

3.1.2 数组对象

# 定义数组
$arr=@(
    "张三",
    "李四",
    "王五"
)
# 直接使用下标操作数组
Write-Host ("第一个姓名:"+$arr[0])
# 遍历输出
foreach($name in $arr){
    Write-Host $name
}

  • test 数组

在这里插入图片描述


将文件复制到另一个文件夹下

[string]$sourceDirectory  = "C:Usersfuwh2DesktopVantageDB"
[string]$destinationDirectory = "D:"
Copy-item -Force -Recurse -Verbose $sourceDirectory -Destination $destinationDirectory

在这里插入图片描述

复制项永远不会删除目标中的额外文件或文件夹,但 -force如果文件已存在则会覆盖它

待续

参考:PowerShell脚本学习

最后

以上就是清爽曲奇为你收集整理的PowerShell脚本学习前言1. PowerShell与cmd的区别2. PowerShell脚本待续的全部内容,希望文章能够帮你解决PowerShell脚本学习前言1. PowerShell与cmd的区别2. PowerShell脚本待续所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(52)

评论列表共有 0 条评论

立即
投稿
返回
顶部