一、PowerShell 强大之处
使用方便
面向对象
使用.net平台功能
兼容性好(兼容CMD等)
可扩展性好
二、快捷键
Tab:自动补齐命令或者文件名
三、管道和重定向
管道:上条命令的输出作为下一条命令的输入
举例如下:
列出当前目录
ls
结果:
Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 2023-01-10 9:44 win32
-a---- 2023-01-05 15:38 60855 000.png
-a---- 2023-01-05 18:17 349073 IMG_7EDF0EA3C3ED-1.jpeg
管道,只需要取出Name和Mode
ls|format-table name,mode
结果:
Name Mode
---- ----
win32 d-----
000.png -a----
IMG_7EDF0EA3C3ED-1.jpeg -a----
重定向,重定向到一个文本文件中
ls|format-table name,mode > demo.txt
在当前目录下生成一个demo.txt文件,把上面的结果保存在文件中,一个大于号表示是重写demo.txt文件,如果是两个大于号,表示是添加模式,向demo.txt后面添加内容。
ls|format-table name,mode >> demo.txt
四、执行外部命令
notepad
打开notepad,也可以这样:
&"notepad"
如果使用双引号,前面需要有字符 &
五、变量
变量必须用$开始;
如果需要使用特殊字符串作为变量,需要用 { } 括起来;
如果是字符串变量,请用双引号包围;
变量不区分大小写;
变量也可以赋值命令;
例如:
$name="sensor"
$age=48
${23 A}="haha"
$n=(100+ 20 *8)/2
$cm=ls //命令
$n1=n2=100 //多变量同时赋值
ls variable:name* //列出name开始的变量
test-path variable:name //判断变量是否存在,存在返回True,否则返回False
del variable:name //删除变量name
ls env: //查看环境变量列表
$env:windir //查看环境变量 windir的具体值
$env:name='测试样本' //临时增加一个环境变量,只在这个进程中有效,不是永久增加
六、条件操作符
-eq :等于
-ne :不等于
-gt :大于
-ge :大于等于
-lt :小于
-le :小于等于
-contains :包含
-notcontains :不包含
PS C:Powershell> (3,4,5 ) -contains 2
False
PS C:Powershell> (3,4,5 ) -contains 5
True
PS C:Powershell> (3,4,5 ) -notcontains 6
True
PS C:Powershell> 2 -eq 10
False
PS C:Powershell> "A" -eq "a"
True
PS C:Powershell> "A" -ieq "a"
True
PS C:Powershell> "A" -ceq "a"
False
PS C:Powershell> 1gb -lt 1gb+1
True
PS C:Powershell> 1gb -lt 1gb-1
False
布尔运算
-and :和
-or :或
-xor :异或
-not :逆
PS C:Powershell> $true -and $true
True
PS C:Powershell> $true -and $false
False
PS C:Powershell> $true -or $true
True
PS C:Powershell> $true -or $false
True
PS C:Powershell> $true -xor $false
True
PS C:Powershell> $true -xor $true
False
PS C:Powershell> -not $true
False
今天是大年初一,祝大家新年快乐!
Today is the first day of Chenise New Year, We wish you Happy New Year!