首页 > 系统相关 >关于powershell常用语法说明

关于powershell常用语法说明

时间:2023-08-28 10:04:27浏览次数:44  
标签:Write 常用 name 语法 Host foreach line powershell Name

1 变量使用说明

# 声明和赋值变量
$var = "Hello, World!"

# 输出变量值
Write-Host $var

2 交互式输入

# 从用户获取输入
$name = Read-Host "Enter your name"
Write-Host "Hello, $name!"

3 多分支判断

$number = 5

if ($number -gt 10) {
    Write-Host "Number is greater than 10"
} elseif ($number -lt 5) {
    Write-Host "Number is less than 5"
} else {
    Write-Host "Number is between 5 and 10"
}

4 foreach遍历

# 遍历数组
$fruits = @("Apple", "Banana", "Orange")

foreach ($fruit in $fruits) {
    Write-Host $fruit
}

# 遍历哈希表(键值对)
$person = @{
    "Name" = "John"
    "Age" = 30
}

foreach ($key in $person.Keys) {
    Write-Host "$key: $($person[$key])"
}

5 函数定义

# 定义函数
function SayHello($name) {
    Write-Host "Hello, $name!"
}

# 调用函数
SayHello "Alice"

6 csv文件操作

# 读取 CSV 文件
$csvFilePath = "C:\data.csv"
$data = Import-Csv -Path $csvFilePath

# 遍历 CSV 数据
foreach ($row in $data) {
    Write-Host "Name: $($row.Name), Age: $($row.Age)"
}

# 导出为 CSV 文件
$outputFilePath = "C:\output.csv"
$data | Export-Csv -Path $outputFilePath -NoTypeInformation

7 正则提取

# 提取行中的日期部分(YYYY-MM-DD 格式)
$line = "Today's date is 2023-08-28"
$date = [regex]::Match($line, '\d{4}-\d{2}-\d{2}').Value
Write-Host $date


# 提取第3到第7列的字符
$line = "12345-67890-ABCDE"
$columns = [regex]::Match($line, '(.{2})(.{5})').Groups[2].Value
Write-Host $columns

8 通过截取方式来获取值,类似awk

echo "123-456-789" | % {$_.split('=')[0]}
# 以-位分隔符,截取第一列,计算机是以0开始计算的
# 使用类似 AWK 的方式截取第3和第7列
Get-Content -Path "file.txt" | ForEach-Object { $_ -split '\s+' } | Select-Object -Property @{Name="Column3"; Expression={$_.[2]}}, @{Name="Column7"; Expression={$_.[6]}}

#改成多行处理
# 使用类似 AWK 的方式截取第3和第7列(多行处理)
$lines = Get-Content -Path "file.txt"
$results = foreach ($line in $lines) {
    $columns = $line -split '\s+'
    [PSCustomObject]@{
        Column3 = $columns[2]
        Column7 = $columns[6]
    }
}
$results

在这个示例中,我们首先使用 Get-Content cmdlet 将文件内容读入到 $lines 数组中。然后,通过 foreach 循环遍历每一行文本。

在循环中,我们将每一行的列拆分成数组,并使用 [PSCustomObject] 创建一个自定义对象,其中包含了第3列和第7列的值。最后,将每个自定义对象添加到 $results 数组。

通过这种方式,您可以实现逐行处理并将提取的列保存到自定义对象中。最终,$results 数组将包含所有行的截取结果,您可以随意处理或输出。

希望这个示例满足了您的需求!如果您还有其他问题,请随时提问。

标签:Write,常用,name,语法,Host,foreach,line,powershell,Name
From: https://blog.51cto.com/dengpeng2025/7260152

相关文章

  • NuGet常用基本配置和命令
    基本配置文件<ProjectSdk="Microsoft.NET.Sdk"> <PropertyGroup> <!--项目支持的框架版本--> <TargetFrameworks> net35; net40; net45; net451; net452; net46; net461; net462; net47; net471; net472; net......
  • 常用环境设置jvm内存
    参数解释:Xms—堆内存初始大小Xmx—堆内存最大值MetaspaceSize—永久内存初始大小MaxMetaspaceSize—永久内存最大值-XX:+UseConcMarkSweepGC  使用cms并行垃圾回收机制 内存大小设置:jstat-gc进程号 查看OU即是老年代(KB)根据老年代设置参数Java堆大小设置,Xms......
  • css语法
    CSS支持nvue样式css预处理器#页面样式与布局uni-app的css与web的css基本一致。本文没有讲解css的用法。在你了解web的css的基础之上,本文讲述一些样式相关的注意事项。uni-app有vue页面和nvue页面。vue页面是webview渲染的、app端的nvue页面是原生......
  • 常用linux命令
    1.磁盘备份,将本地的/dev/hdx整盘备份到/dev/hdyddif=/dev/hdxof=/dev/hdy2.磁盘恢复,将备份文件恢复到指定盘ddif=/path/to/imageof=/dev/hdx3.备份MBR,备份磁盘开始的512Byte大小的MBR信息到指定文件ddif=/dev/hdxof=/path/to/imagecount=1bs=5124.回复MBRddif=/path/t......
  • 生存分析常用的统计模型
    回复我们公众号“1号程序员”的“E001”可以获取《BAT机器学习面试1000题》下载链接。[关注并回复:【E001】] 生存分析,是将观察结局和出现这一结局所经历的时间结合起来分析的一种统计分析方法,已经被广泛地应用于癌症数据分析领域,来揭示疾病特征和预后结局的关系,为临床医生提供预......
  • 数据库基本语法四 数据库查询(DQL)
    数据查询语言(DQL)是SQL语言中的一部分,主要用于查询数据库中的数据。DQL允许用户根据特定的条件来检索表中的数据,并且可以包含一些基本的操作和条件。语法结构:SELECT列名称1,列名称2FROM表名称;其中,SELECT指定要检索的列,FROM指定要查询的表,WHERE指定筛选条件。以下是一些......
  • 常用的linux命令
    《linux常用基础命令1.文件操作命令创建文件:touchfilename创建目录:mkdirdirName删除文件:rmfilename删除文件夹:rm-rfdirName文件复制:cp原始文件目标文件文件夹复制:cp-r原始目录目标目录文件移动:mvpath/sourceFileNamepath/targetFileName文件重命名:mvfil......
  • sharp.js的常用方法
    sharp.js是一个用于处理图像的JavaScript库,它提供了许多方法来操作和修改图像。以下是一些常用的sharp.js方法及其详细参数说明: 1.`resize(width,height)`:调整图像的宽度和高度。  -width(Number):新的宽度。  -height(Number):新的高度。 2.`crop(left,top,widt......
  • 遇到的Docker常用命令
    遇到的Docker常用命令一、安装Docker1)Docker要求CentOS系统的内核版本高于3.10,首先查看系统内核版本是否满足uname-r2)使用root权限登录系统,确保yum包更新到最新sudoyumupdate-y3)假如安装过旧版本,先卸载旧版本sudoyumremovedockerdocker-commondocker-sel......
  • fs常用方法
    `fs`是Node.js中用于文件系统操作的模块。以下是一些常用的`fs`方法及其使用示例: 1.`fs.readFile(path,options,callback)`:读取文件内容。参数`path`是文件路径,`options`是一个可选的配置对象,`callback`是一个回调函数,当文件读取完成时调用。 ```javascriptcon......