【powershell】入门和示例

🛫 导读

开发环境

版本号描述
文章日期2023-11-17
操作系统Win10 - 22H219045.3570
PowerShell5.1.19041.3570

1️⃣ 简介

PowerShell 是一种命令行 shell脚本语言一体化工具。
PowerShell 由 Windows 推出,用于帮助自动执行管理任务。 现在,它跨平台运行,可用于各种任务

PowerShell 的独特之处在于,它接受返回 .NET 对象而非文本。 这个功能让它可以更轻松地在一个管道中连接不同的命令

用途

可使用PowerShell完成多种任务,例如:

  • 云管理。 可以使用 PowerShell 管理云资源。 例如,可以检索有关云资源的信息,也可以更新或部署新资源。
  • CI/CD。 它也可以用作持续集成/持续部署管道的一部分。
  • 将 Active Directory 和 Exchange 任务自动化。 使用它,几乎可将所有的 Windows 任务自动化,例如在 Active Directory 中创建用户以及在 Exchange 中创建邮箱。

IDE

Windows PowerShell ISE
ISE(Integrated Scripting Environment)是 Windows PowerShell 的图形化界面,为用户提供了一个方便的脚本编写环境。它允许用户使用各种脚本语言(例如 PowerShell、 batch、VBScript 等)编写和调试脚本,并能够在不同的环境中执行脚本,如命令行、系统托盘和计划任务等。
Windows PowerShell ISE 提供了许多方便的功能,例如代码提示、语法高亮、断点调试、脚本执行历史记录、脚本加密等。此外,它还集成了许多常用的 PowerShell 命令和函数,方便用户快速使用和编写脚本。
在这里插入图片描述

VSCode
官网给出了VSCode使用的方方面面的使用说明,可见使用VSCode开发应该算是首选,
有兴趣的可以查看官网资料:https://learn.microsoft.com/zh-cn/powershell/scripting/dev-cross-plat/vscode/using-vscode

解决此系统上禁止运行脚本

小编的机器默认不允许执行powershell脚本,会报下面错误:
在这里插入图片描述

这个是windows安全策略导致的,直接在Powershell中输入 set-executionpolicy remotesigned,然后输入A回车即可。
在这里插入图片描述

2️⃣ 语法

Powershell的语法中的概念和常见的编程语言很像,包含下面几个方面:

  • 命令行: PowerShell 可以像命令提示符一样使用。在 PowerShell 中,每个命令都以increase service logoncount的形式指定,其中 increase是动词,service是名词,logoncount是特定于该命令的参数。
  • 变量: PowerShell 允许定义变量,并在脚本中使用这些变量。变量以美元符号( )开头,并可以使用点号( . )访问其包含的值。例如, ‘ )开头,并可以使用点号(.)访问其包含的值。例如,` )开头,并可以使用点号(.)访问其包含的值。例如,ComputerName = "localhost"表示定义名为ComputerName的变量,并将值设为localhost`。
  • 运算符: PowerShell 提供了与编程语言相似的运算符,例如数学运算符(+、-、*、/)、比较运算符(-lt、-le、-eq、-ne)和逻辑运算符(&&、||、!)。
  • 流程控制: PowerShell 提供了许多流程控制结构,例如if语句、switch语句和for循环。这些结构使管理员可以将多个命令组合在一起并根据特定条件执行它们。
  • 函数: PowerShell 提供了一种使用脚本定义自己的函数的方法。函数可以接受参数,也可以返回值。它们通常用于封装常见的任务或计算,使脚本更具可读性和可维护性。
  • 模块:模块是包含函数和其他可重用代码的可安装软件包。 PowerShell 提供了许多内置模块,但也允许自定义模块

ps: 当然,Powershell的使用还是和别的语言有很大的差别的,比如函数的使用就极其别扭,有兴趣的可以参考文章《PowerShell探秘(5-1)函数返回值的问题:https://blog.csdn.net/zooen2011/article/details/16875839

下面编写一个函数作为例子,供大家参考:


$dirs = "C:\Program Files\MySQL\MySQL Server 8.1\bin\",
"C:\Program Files\MySQL\MySQL Workbench 8.0\",
"C:\Program Files\MySQL\MySQL Workbench 8.0 CE\",
"C:\Program Files\"
# echo $dirs

function getValidatePath {
	#固定语法
    [CmdletBinding()]
	#参数声明
	param(
        [Parameter()]
        [array] $dirs
    )

    $mysql_path = "123"
    Foreach($d in $dirs){
        if (Test-Path "$d") {
            $mysql_path=$d
            break
            # return $mysql_path
        }
    }
    
    Write-Host $mysql_path
    Write-Output $mysql_path
    # $mysql_path 
}
$mysql_path2=getValidatePath $dirs

3️⃣ 实战

数据库备份

遍历可用的目录,找到可用的目录;执行Start-Process备份数据库。

$dirs =
"C:\Program Files\MySQL\MySQL Workbench 8.0 CE\",
"C:\Program Files\MySQL\MySQL Workbench 8.0\",
"C:\Program Files\MySQL\MySQL Server 8.0\bin\"

# 遍历可用的目录
Foreach($d in $dirs){
    if (Test-Path $d) {
        $mysql_path = $d
        break
    }
}


echo $mysql_path
$mysql_exe = $mysql_path+"mysqldump.exe"
echo $mysql_exe

$processOptions = @{
    FilePath = $mysql_exe
# --host=localhost --port=3306
# ,"--single-transaction=TRUE","--routines","--events","--column-statistics=0",
    ArgumentList = "--default-character-set=utf8","--user=root","--password=root","--protocol=tcp","--single-transaction=TRUE","--routines","--events","--column-statistics=0","sw_prod"
#     RedirectStandardInput = "all.sql"
    RedirectStandardOutput = "all.sql"
    RedirectStandardError = "Error.txt"
    NoNewWindow = $true
}
# 启动mysqldump进程,备份数据
Start-Process @processOptions
Read-Host -Prompt "Press any key to continue..."

执行循环拷贝文件夹

使用python编写脚本需要python环境,Powershell脚本就方便多了。
注意事项:

  • xcopy拷贝目录,以\结尾!!!
  • 隐藏命令黑框:-WindowStyle Hidden
  • 比较:-le为小于等于;-lt为小于
# xcopy拷贝文件夹
$src = "J:\_ALL\CODE\gitcode\kinghzking\MyOpen\leaflet\d4"

# 从5到15执行
for($i=5; $i -le 15; $i++)   
{
    $dst = "J:\_ALL\CODE\gitcode\kinghzking\MyOpen\leaflet\d$i"
    # $cmd = "xcopy /Y $src $dst"
    # 拷贝目录,以\结尾!!!
    $args = " /Y $src\ $dst\"
    Write-Host $args
    Start-Process xcopy.exe -WindowStyle Hidden -ArgumentList $args
}

🛬 文章小结

庞大的Powershell,有点让人望而却步,小编也只是用到啥查啥,文章只做学习记录。
这里值得提的大概就是函数的返回值需要特别注意一下。

📖 参考资料

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: PowerShell是一种命令行工具和脚本语言,它可以帮助管理员自动化任务和管理Windows操作系统。它使用.NET框架,并且可以访问Windows管理接口(WMI)和其他系统管理API。要入门PowerShell,您需要学习基本语法和命令,了解如何使用PowerShell管理文件和文件夹,以及如何使用PowerShell管理Windows服务和进程。您还可以学习如何编写PowerShell脚本来自动化常见的管理任务。 ### 回答2: PowerShell是一个命令行界面和脚本语言,在Windows操作系统中提供了一种强大的管理员工具,它是Windows管理员最常使用的工具之一。PowerShell的目标是使管理员的工作更加轻松和自动化。本文将介绍PowerShell入门知识。 一、PowerShell的基础知识 PowerShell的基础命令是cmdlet(简单指令),它是PowerShell的核心对象之一。通过执行cmdlet,用户可以获取系统的信息、管理系统、创建对象以及执行操作等等。PowerShell的cmdlet是由系统提供的,也可以由用户自定义。PowerShell的文件扩展名是 .ps1,它是PowerShell脚本。 二、使用PowerShell实现各种操作 在使用PowerShell时,可以使用不同的命令来实现各种操作。以下是PowerShell的各种命令: 1. Get-Command:获取系统上可用的cmdlet和函数的信息。 2. Get-Help:获取有关某个cmdlet的详细信息和示例。 3. Get-Process:获取在计算机上正在运行的进程。 4. Get-Service:获取计算机上已安装的服务。 5. Set-Service:启动、停止或重启特定的服务。 6. Start-Process:启动一个新的进程。 7. Stop-Process:停止正在运行的进程。 8. Get-EventLog:获取Windows事件日志的信息。 9. Get-WMIObject:获取计算机上或远程计算机上的Windows管理信息。 三、PowerShell的常见用途 除了上面提到的操作之外,PowerShell可以用于以下任务: 1. PowerShell可以用于自动化任务,例如部署系统更新、测试软件等。 2. PowerShell可以用于管理系统,例如获取系统硬件、操作系统和应用程序的信息。 3. PowerShell可以用于执行诸如注册表修改、文件操作和网络配置等任务。 4. PowerShell可以对于需要定期复制的文件,创建一个自动任务程序,定时复制文件,也可以找到具体错误文件,准确判断故障原因。 5. PowerShell还可以将数据转换为CSV文件,使用SQL Server Analysis Services (SSAS) 或 Excel等工具进行数据分析。 四、如何学习PowerShell 如果你想学习PowerShell入门知识,你可以: 1. 下载和安装PowerShell。 2. 阅读PowerShell的帮助文件,包括Get-Help cmdlet命令的帮助信息。 3. 学习PowerShell的基本语法和命令,例如:cmdlet、管道、参数等。 4. 阅读PowerShell脚本,可以从中学习如何编写脚本以及如何使用cmdlet执行操作。 5. 看PowerShell的视频教程,例如PowerShell入门课程等。 总之,PowerShell是一个强大的管理工具,在Windows系统中有着广泛的应用。学习PowerShell需要一定的时间和耐心,但一旦掌握了PowerShell的基础知识,您就可以节省大量的时间和精力来管理系统和自动化任务。 ### 回答3: Powershell是一种面向对象的Shell和脚本语言,由微软公司开发推出,用于 windows 系统下的管理和自动化的任务。很多人认为,Powershell是一种强大的工具,提供了许多管理和脚本功能,能够很好地利用现有的技能和知识来实现更高效的管理和自动化任务。 设置Powershell 首次打开Powershell会话后,需要执行Set-ExecutionPolicy命令进行权限设置,以便启用Powershell脚本。在管理模式下,输入以下命令: Set-ExecutionPolicy Unrestricted 这个命令可以让你运行任何脚本。如果不想运行任何脚本,也可以: Set-ExecutionPolicy Restricted 但是,这样将会禁止任何脚本的执行。 完成这些设置后,你就可以使用Powershell进行管理和脚本编写了。 基础命令 Powershell有很多基础命令,这里只简单列举: 获取帮助:help 列出命令:get-command 执行命令:invoke-command 获取电脑信息:get-process 显示输出:write-output 变量:$variable,可以存储任何类型的数据。 学习Powershell的秘诀 要学习Powershell,需要: 了解基本的脚本语言结构。 熟悉Powershell自带的命令和别名。 使用在线学习资源,如微软官方文档和社区论坛。 实践编写脚本。 与其它Powershell爱好者进行交流。 总之,学习Powershell需要付出时间和精力,但这将会带来更高效的管理和自动化技能,让你在IT管理中受益匪浅。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

夜猫逐梦

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

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

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

打赏作者

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

抵扣说明:

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

余额充值