windows PowerShell脚本学习

阅读数:344 评论数:0

跳转到新版页面

分类

应用软件

正文

一、概述

在windows中,cmd和powershell都是命令执行窗口,powershell从win7开始内置于windows系统中,可以看作是cmd的增强。

为了兼容unix/linux shell(主要是bash)的命令;powershell中提供了一套别名机制来兼容cmd和bash命令。

按住shift同时点击鼠标右键,在弹出的菜单中可以选择打开powershell,这里会直接进入鼠标所点击的文件夹。

1、powershell对大小写不敏感。

2、使用$符号定义变量。

二、使用

1、快捷键

(1)Alt+F7 : 清除命令,相当于cls

(2)esc: 清空当前命令行。

(3)tab:自动补全命令

2、管道

get-process p* | stop-process

(1)>:表示输出到某个文件,覆盖文件原有的内容,如果文件不存在则自动创建。

(2)>>:表示添加到某文件内容的结尾。

(3)行模式显示(属性和值在同一行),格式化输出 fl:format list

# 查看域用户信息,结果按行显示
Set-ExecutionPolicy Bypass
Import-Module PowerView.ps1        
Get-NetUser | fl name,lastlogon,distinguishedname  

(4)表格模式显示,格式化输出 ft: format table。

# 查看域用户信息,结果按表格显示
Set-ExecutionPolicy Bypass
Import-Module PowerView.ps1       
Get-NetUser | ft name,lastlogon,distinguishedname 

3、使用外部命令

(1)netstat -ano: 查看端口信息。

(2)ipconfig: 查看网络配置信息。

(3)route print:打印路由信息。

(4)&"command": 打开powershell外部命令。

(5)$env:path: 输出path环境变量的内容。

(6)$env:path=$env:path+"dir_path":临时添加path环境变量。

# 查看cmdlet、function、alias的帮助文档
Get-Help / help / man <String>   

# 查看cmdlet、function、alias信息,支持通配符*匹配
Get-Command [[-Name] <String>] 

# 查看进程信息,支持通配符*匹配
Get-Process / ps [[-Name] <String>]

# 查看当前会话中命令别名
Get-Alias [[-Name] <String>]

# 获取目录信息,Filter支持通配符*
Get-ChildItem / ls / dir [[-Path] <String>] [[-Filter] <String>]

# 获取当前目录位置
Get-Location / pwd

# 获取当前会话中的变量信息,支持通配符*
# 获取当前程序PID:Get-Variable PID
Get-Variable [[-Name] <String>]

# 获取服务,支持通配符*
Get-Service [[-Name] <String>]

# 获取当前会话的执行策略
Get-ExecutionPolicy

# 获取文件内容
Get-Content / type [-Path] <String>

# 为命令设置别名
Set-Alias [-Name] <Alias_String> [-Value] <String>

# 设置变量值
Set-Variable [-Name] <String> [[-Value] <Object>]

# 切换路径
Set-Location / cd [[-Path] <String>]

# 启动、停止、暂停服务
Set-Service [-Name] <System.String> [-Status {Paused | Running | Stopped}]

# 设置PowerShell命令执行策略
Set-ExecutionPolicy {AllSigned | Bypass | Default | RemoteSigned | Restricted | Undefined | Unrestricted}

# 将字符串当作命令在本地执行
Invoke-Expression / iex [-Command] <String> [<CommonParameters>]

# 新建.NET Framework对象
New-Object [-TypeName] <String>

# 新建文件/目录
# -Name:文件/目录名称
# -Path:文件/目录所在目录
# -Value:文件中的内容
# -Force:覆盖当前文件/目录
# -Confirm:需要交互式确认
# -ItemType包括:Directory、File、SymbolLink、Junction、HardLink
New-Item / mkdir -Name <String> [[-Path] <String>] [-Value <Object>] [-Force] [-Confirm] [-ItemType <String>] 

# 复制文件/目录
Copy-Item [-Path] <String> [[-Destination] <String>]

# 复制文件/目录
Move-Item [-Path] <String> [[-Destination] <String>]

# 删除文件/目录
Remove-Item [-Path] <String>

# 重命名文件/目录
Rename-Item [-Path] <String> [-NewName] <String>

4、变量

(1)$home:用户根目录路径。

(2)$pid: 当前界面进程ID。

(3)$$:上一个运行的命令。

(4)$?: 上一个命令运行的状态,返回布尔值。

(5)$_:当前变量

(6)$null: 空值、空变量。

三、powershell脚本

1、查看命令行的脚本执行权限

为防止恶意脚本,默认情况下策略为“不能执行”。

Get-Executionpolicy,返回Restricted表示禁止。

Set-Executionpolicy RemoteSigned:允许命令行运行PowerShell脚本

(1)Restricted:脚本不能运行(默认设置)

(2)RemoteSigned:在本地创建脚本可以运行,但从网上下载的不能(拥有数字证书签名除外)

(3)AllSigned:仅当脚本受信任的发布者签名才能运行。

(4)Urestricted:允许所有脚本运行。

2、脚本调用

(1)执行脚本

&"powershell_script_path"

(2)bat脚本调用powershell脚本

powershell "& 'powershell_script_path'"

3、脚本后缀为.ps1

四、使用示例

1、获取磁盘分区信息

PS C:\Users\yyy> Get-WmiObject -Class Win32_LogicalDisk | select *
PS C:\Users\yyy> Get-WmiObject -Class Win32_LogicalDisk | select deviceid,size,freespace

deviceid         size   freespace
--------         ----   ---------
C:       209121701888 17412263936
D:       290391584768 37319020544



相关推荐

方法一 win+r 输入shell:startup 把编写bat脚本放置在以下位置 方法二 c-&gt;programData-&

一、设置ip netsh interface ip set address name=”Ethernet0″ static 10.1.2.220 255.255.255.0 10.1.2.1 根据自己

一、概述 在windows powershell中,可以在netsecurity模块中找到所有防火墙命令。 Get-Command -Module NetSecurity | Format-List

一、mstsc Microsoft Terminal Service Client。 1、运行命令mstsc win+r->输入"mstsc" 2、服务器远程连接配置 二、使用powershell远

一、概述 官方提供的windows安装mysql有两种: 1、msi安装包 2、zip包 下面以zip这种形式进行安装。 二、安装 1、切换到Program Files下 cd 'C:\Program

一、枚举当前系统中已存在共享 win32_share对象便是windows系统上共享的磁盘、打印机、系统默认共享以及其他共享设备。 PS C:\Windows\system32> Get-WmiObj

一、下载安装包 https://github.com/tporadowski/redis/releases 如果下载慢,参考:http://1024s.top/blog/detail?blogId=4

1、下载 链接:https://pan.baidu.com/s/

获取批处理命令时间戳,最终格式为yyyyMMddHHmmSS **windows没有专门的时间戳函数,只有d

win+r diskpart list disk 找到要恢复的磁盘 select disk 2 数据字为上面显示的磁盘号 clea