Powershell笔记

操作符

变量前面加$

参数前面加-

注释前面加#

代码结尾无分号

逻辑运算符

比大小

  • -eq‌:等于
  • ‌**-ne**‌:不等于
  • ‌**-gt**‌:大于
  • ‌**-ge**‌:大于等于
  • ‌**-lt**‌:小于
  • ‌**-le**‌:小于等于

布尔运算

-and -or -not -xor

数据类型(常用)

int

float

string\]使用单引号或双引号定义,双引号支持变量插值 ### 判断 if(判断语句){ } ### 循环 #### for循环 ```bash for ($i = 1; $i -le 10; $i++) { Write-Host "当前数字: $i" } ``` #### foreach循环 foreach ($XXX in $XXXs){ } #### while循环 ```bash $count = 1 while ($count -le 5) { Write-Host "计数: $count" $count++ } ``` ### 函数 #### 函数定义 function 函数名{ param( [类型]$参数名1, [类型]$参数名2, [类型]$参数名3=默认值 ) 函数体 } 函数调用 函数名 -参数名1 值 -参数名2 值 -参数名3 值 ### 常用API #### Get-ChildItem得到文件夹成员 Get-ChildItem -Path 路径 -Filter "*.后缀名" #路径写.代表脚本所在的路径 #### Write-Host打印 Write-Host "提示语" -ForegroundColor 颜色 #### ChangeExtension改后缀名 [System.IO.Path]::ChangeExtension($file.Name, ".jpg") #### $PSScriptRoot当前脚本的目录 ## 报错 ### 对webp使用\[System.Drawing.Image\]::FromFile($_.FullName)提示内存不足 System.Drawing.Image不支持webp。 ## 一些脚本 ### 调整jpg的质量 在倒数第2行的-quality后面输入百分比质量,结果在New文件夹。 function ChangeImageQuality{ param ( [string]$imagePath, [string]$outputPath,# 设置输出路径和新的图像 [ValidateRange(0, 100)] [int]$quality = 75# 质量范围从1到100,100为最高 ) Add-Type -AssemblyName System.Drawing # 加载图像 $image = [System.Drawing.Image]::FromFile($imagePath) # 创建一个JPEG编码器的实例 $encoder = [System.Drawing.Imaging.ImageCodecInfo]::GetImageEncoders() | Where-Object { $_.MimeType -eq "image/jpeg" } $encoderParams = New-Object System.Drawing.Imaging.EncoderParameters(1) $encoderParams.Param = New-Object System.Drawing.Imaging.EncoderParameter([System.Drawing.Imaging.Encoder]::Quality, $quality) # 保存图像 $image.Save($outputPath, $encoder, $encoderParams) # 清理资源 $image.Dispose() $imagePath+"已修改完成" } $path=$PSScriptRoot $newPath=$path+"\New" if (-not (Test-Path -Path $newPath)) { # 文件夹不存在,创建文件夹 New-Item -ItemType Directory -Path $newPath Write-Host "创建了文件夹$newPath" } $files = Get-ChildItem -Path $path -Filter "*.jpg" foreach($file in $files) { #file.Name是完整文件名,BaseName是不包括扩展名的文件名 #$file.Name $newName=$newPath+"\"+$file.BaseName+"_1.jpg" ChangeImageQuality -imagePath $path"\"$file -outputPath $newName -quality 70 } ### 删除文件夹里某类型文件 这里是webp Get-ChildItem -Path "." -Recurse -Filter "*.webp" | Remove-Item -Force

相关推荐
超级大福宝6 天前
PowerShell 实现类似 Bash 的补全行为
bash·powershell
小雪_Snow10 天前
PowerShell 版本升级教程
powershell
Whoami!12 天前
⓫⁄₅ ⟦ OSCP ⬖ 研记 ⟧ Windows权限提升 ➱ 利用PowerShell获取敏感信息
网络安全·信息安全·powershell·windows日志
小雪_Snow15 天前
PowerShell 修改编码为 UTF-8 教程
powershell
shandianchengzi15 天前
【开源工具】DeepSeek-Raw-Export|油猴脚本使用 DeepSeek 的复制按键直接导出
llm·脚本·工具·油猴·deepseek
猫头虎16 天前
macOS 双开/多开微信WeChat完整教程(支持 4.X 及以上版本)
java·vscode·macos·微信·编辑器·mac·脚本
亿牛云爬虫专家16 天前
采集架构的三次升级:脚本、Docker 与 Kubernetes
爬虫·docker·架构·kubernetes·脚本·代理ip·采集
番茄灭世神19 天前
常见终端工具输出中文乱码的解决方案
bash·编码格式·powershell·终端工具
gis分享者23 天前
Shell 脚本中如何使用 here document 实现多行文本输入? (中等)
shell·脚本·document·多行·文本输入·here
gis分享者1 个月前
Shell 脚本中如何使用 trap 命令捕捉和处理信号(中等)
shell·脚本·信号·处理·trap·捕捉