Introduction

参考 官网

环境变量

环境变量位于全局变量 $env 中。

修改 PATH

    $env.path += ";C:\Path"

修改系统环境变量

[Environment]::GetEnvironmentVariable('Path', 'Machine')
[Environment]::SetEnvironmentVariable('JAVA_HOME', 'C:\Program Files\Java\jdk-11.0.13' , 'Machine')

Proxy

使用环境变量控制代理。

$env:HTTP_PROXY="127.0.0.1:8118"
$env:HTTPS_PROXY="127.0.0.1:8118"

使用 System.Net.WebProxy 对象控制使用代理。

优先使用 [System.Net.WebRequest]::DefaultWebProxy 中的代理配置。如果该项未设置,则默认使用系统代理

可以通过 [System.Net.WebRequest]::GetSystemWebProxy() 获取系统代理。

Start-BitsTransfer 使用代理

对于 Start-BitsTransfer 命令可以指定代理参数

Start-BitsTransfer -Source $dartSdkUrl -Destination $dartSdkZip -ProxyUsage "Override" -ProxyList "127.0.0.1:8118"

文档

https://docs.microsoft.com/zh-cn/powershell/

获取命令帮助

Get-Help Get-Item

初始化脚本

位于 %USERPROFILE%\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1

环境变量

增加当前 Shell 中的环境变量中的搜索路径。

$env:Path+=";C:\PowerShell\myscript";

使用 .Net 方法可以直接修改系统全局环境变量。

[environment]::SetEnvironmentvariable("Path", ";c:\powershellscript", "User")

命令

创建符号链接

New-Item -Path $link -ItemType SymbolicLink -Value $target

允许脚本执行

Set-ExecutionPolicy -ExecutionPolicy Unrestricted

操作系统特性

Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux

文件操作

查看目录

Get-ChildItem -Path "C:\"

查看隐藏文件

Get-ChildItem -Path "C:\" -Hidden

创建文件

New-Item -Path "C:\" -ItemType "File" -Name "new.txt"

创建文件夹

New-Item -Path "C:\" -ItemType "Directory" -Name "folder"

拷贝文件

Copy-Item -Path "C:\a.txt" -Destination "D:\"

批量重命名

Get-ChildItem | Rename-Item -NewName { $_.Name + ".7z" } 

带过滤批量重命名

Get-ChildItem | Where-Object { $_.Name -match ".pdf"} | Rename-Item -NewName { $_.Name + ".7z" }