powershell基础
脚本以ps1后缀命名
参数使用stu=@{ Name = "test";Age="12";sex="man" }
判断是否为数组 $test -is [array]
单行注释 #
多行注释 <# #>
条件判断
-eq :等于
-ne :不等于
-gt :大于
-ge :大于等于
-lt :小于
-le :小于等于
-contains :包含 如: $array -contains something
-notcontains :不包含
逻辑运算
!($a): 求反
-and :和
-or :或
-xor :异或
-not :逆
判断语句
if(){
}
else{
}
循环
1.
while($n -gt 0){
code
}
i=1;i++)
{
i
}
$sum
foreach(\(file in dir c:\windows)
{
if(\)file.Length -gt 1mb)
{
$File.Name
}
}
Get-WmiObject Win32_Service | ForEach-Object {"Name:"+ _.ProcessId -gt 100)}
函数
function Invoke-PortScan {
<#
.SYNOPSIS
简介
.DESCRIPTION
描述
.PARAMETER StartAddress
参数
.PARAMETER EndAddress
参数
.EXAMPLE
PS > Invoke-PortScan -StartAddress 192.168.0.1 -EndAddress 192.168.0.254
用例
>
code
}
异常处理
Try{ success = $true }Catch{ false }
常用命令
Get-ChildItem 的别名为ls、dir
列出所有目录
Get-ChildItem -Attributes D
列出所有文件
Get-ChildItem -Attributes !D
如果需要只列出文件名,可以在上述命令的基础上添加-Name参数
Get-ChildItem -Attributes D -Name
for循环遍历所有的文件
foreach($i in Get-ChildItem -Attributes D -Name){
echo $i
}
获取脚本所在路径
$x = Split-Path -Parent $MyInvocation.MyCommand.Definition
判断路径是否存在
$TRUE_FALSE=(Test-Path $pslPath\publish)
if($TRUE_FALSE -eq "True"){
}
else{
}
压缩
Compress-Archive -Path D:\test -DestinationPath E:\test.zip
解压缩
Expand-Archive -Path D:\test.zip -DestinationPath F:\test
中文乱码
脚本文件使用UTF-8 BOM格式保存
如果遇到报错:【因为在此系统上禁止运行脚本】时可以使用下面的命令解决
set-executionpolicy remotesigned
[参考]
powershell基础
乱码问题解决方案
联系我:renhanlinbsl@163.com
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具
2021-08-05 dockerscan扫描镜像