- 具体参数参照官网文档,我只做对命令使用的了解,不扣细节
官网文档 - 向指定的项中添加内容,如向文件中添加字词
- Cmdlet Add-Content
- 将文字追加到当前目录中的ps1文件,但根据文件名称排除test3.ps1
#test.ps1
Add-Content -Path .\*.ps1 -Exclude test3.ps1 -Value '5555555'
- 可以指定路径清除文件内容,可以使用正则模糊匹配清除
- Cmdlet Clear-Content
- 清除文件名后边是3.ps1文件的内容
#test.ps1
Clear-Content "./*3.ps1"
- 关于命令的历史记录,有四种处理,即增加,获得,调用,清除
- Add-History
- Get-History
- Invoke-History
- Clear-History
` ※ 感觉用处不大,不想过多研究,略
- 将自定义属性和方法添加到 PowerShell 对象的实例中
- Cmdlet Add-Member
- 将 Microsoft .NET 类添加到 PowerShell 会话,前边这句话是微软文档里写的,我的理解就是powershell可以直接调用.NET或者windows的api,直接使用里边的包之类的,这个对会.NET之类的人很友好,我就做过一个c#的项目,所以不太喜欢这种掺杂的感觉,看着乱
- Cmdlet Add-Type
- 下边例子的官方文档的,能看懂但我不想尝试了,闹挺,注释加上吧,容易理解点
$Source = @"
//c#的类,里边有个静态方法,加法计算,一个成员方法乘法计算
public class BasicTest
{
public static int Add(int a, int b)
{
return (a + b);
}
public int Multiply(int a, int b)
{
return (a * b);
}
}
"@
#相当于调用上边的类
Add-Type -TypeDefinition $Source
#因为是静态方法,所以直接类名.方法调用
[BasicTest]::Add(4, 3)
#因为是成员方法,所以创建对象,调用方法
$BasicTestObject = New-Object BasicTest
$BasicTestObject.Multiply(5, 2)
- 删除变量的值
- Cmdlet Clear-Item
#test.ps1
$name = "zhansgan"
$str="name1:"+$name
Write-Output $str
Clear-Item Variable:name
$str="name2:"+$name
Write-Output $str
PS /Users/sixdog/Documents/PowerShell> ./test.ps1
name1:zhansgan
name2:
PS /Users/sixdog/Documents/PowerShell>
- 可以理解为dos里的copy
- Cmdlet Copy-Item
#test.ps1
Copy-Item ./test.ps1 -Destination ../test/
PS /Users/sixdog/Documents/PowerShell> ./test.ps1
PS /Users/sixdog/Documents/PowerShell> cd ..
PS /Users/sixdog/Documents> cd ./test/
PS /Users/sixdog/Documents/test> ls
test.ps1
PS /Users/sixdog/Documents/test>
- 删除变量
- Cmdlet Remove-Variable
#test.ps1
$name = "zhansgan"
Remove-Variable name
Get-Variable name
PS /Users/sixdog/Documents/PowerShell> ./test.ps1
Get-Variable: /Users/sixdog/Documents/PowerShell/test.ps1:9:1
Line |
9 | Get-Variable name
| ~~~~~~~~~~~~~~~~~
| Cannot find a variable with the name 'name'.
PS /Users/sixdog/Documents/PowerShell>
- .获取当前文件夹信息,*获取文件夹下所有文件信息
- Cmdlet Get-Item
#test.ps1
PS /Users/sixdog/Documents/PowerShell> Get-Item .
Directory: /Users/sixdog/Documents
UnixMode User Group LastWriteTime Size Name
-------- ---- ----- ------------- ---- ----
drwxr-xr-x sixdog staff 2023/7/30 10:40 288 PowerShell
PS /Users/sixdog/Documents/PowerShell> Get-Item *
Directory: /Users/sixdog/Documents/PowerShell
UnixMode User Group LastWriteTime Size Name
-------- ---- ----- ------------- ---- ----
drwxr-xr-x sixdog staff 2023/7/30 09:34 128 PSCsvUtil
-rw-r--r-- sixdog staff 2023/7/30 07:18 33437 command.txt
-rw-r--r-- sixdog staff 2023/7/30 17:01 42 test.ps1
-rw-r--r-- sixdog staff 2023/7/29 20:10 3782 test.zip
-rw-r--r-- sixdog staff 2023/7/30 15:57 14 test2.ps1
-rw-r--r-- sixdog staff 2023/7/30 15:00 0 test3.ps1
PS /Users/sixdog/Documents/PowerShell> get-Item /Users/sixdog/Documents/PowerShell/
Directory: /Users/sixdog/Documents
UnixMode User Group LastWriteTime Size Name
-------- ---- ----- ------------- ---- ----
drwxr-xr-x sixdog staff 2023/7/30 10:40 288 PowerShell
PS /Users/sixdog/Documents/PowerShell> get-Item /Users/sixdog/Documents/PowerShell/*
Directory: /Users/sixdog/Documents/PowerShell
UnixMode User Group LastWriteTime Size Name
-------- ---- ----- ------------- ---- ----
drwxr-xr-x sixdog staff 2023/7/30 09:34 128 PSCsvUtil
-rw-r--r-- sixdog staff 2023/7/30 07:18 33437 command.txt
-rw-r--r-- sixdog staff 2023/7/30 17:01 42 test.ps1
-rw-r--r-- sixdog staff 2023/7/29 20:10 3782 test.zip
-rw-r--r-- sixdog staff 2023/7/30 15:57 14 test2.ps1
-rw-r--r-- sixdog staff 2023/7/30 15:00 0 test3.ps1
PS /Users/sixdog/Documents/PowerShell> (Get-Item .).LastAccessTime
2023年7月30日 星期日 10:40:42
PS /Users/sixdog/Documents/PowerShell>
- 打开文件,或者打开一类文件
- Cmdlet Invoke-Item
PS /Users/sixdog/Documents/PowerShell> Invoke-Item "/Users/sixdog/Documents/PowerShell/test.docx"
PS /Users/sixdog/Documents/PowerShell>
PS /Users/sixdog/Documents/PowerShell> ./test.ps1
PS /Users/sixdog/Documents/PowerShell> Invoke-Item "/Users/sixdog/Documents/PowerShell/*.xlsx"
PS /Users/sixdog/Documents/PowerShell>
- 移动,相当于mv,可重命名
- Cmdlet Move-Item
PS /Users/sixdog/Documents/PowerShell> Move-Item ./command.txt ./test/
PS /Users/sixdog/Documents/PowerShell>
- 将项目(如变量或注册表项)的值更改为命令中指定的值
- Cmdlet Set-Item
#不想试了,微软文档例子
#此命令为记事本创建 np 的别名
Set-Item -Path alias:np -Value "c:\windows\notepad.exe"
#此命令将 UserRole 环境变量的值更改为管理员
Set-Item -Path env:UserRole -Value "Administrator"
- 删除命令,可以删除许多不同类型的文件,包括文件、文件夹、注册表项、变量、别名和函数
PS /Users/sixdog/Documents/PowerShell> Remove-Item ./test4.ps1
PS /Users/sixdog/Documents/PowerShell>
-重命名文件
- Rename-Item
PS /Users/sixdog/Documents/PowerShell> Rename-Item -Path ./test.docx -NewName word.docx
PS /Users/sixdog/Documents/PowerShell>
- 将属性从一个注册表项复制到另一个注册表项
- Copy-ItemProperty
#注册表修改这种我就不尝试了,把电脑再给我整歇菜了,官网例子拷过来
Copy-ItemProperty -Path "MyApplication" -Destination "HKLM:\Software\MyApplicationRev2" -Name "MyProperty"
- 将属性从一个注册表项复制到另一个注册表项
- Clear-ItemProperty
- 删除变量的值
- Clear-Variable
PS /Users/sixdog/Documents/PowerShell> $a=1
PS /Users/sixdog/Documents/PowerShell> Clear-Variable -Name "a"
PS /Users/sixdog/Documents/PowerShell> $a
PS /Users/sixdog/Documents/PowerShell>
- 转换路径,我的理解是两种
- 一种是我们常用的当前路径.或者根路径~,或者上级路径…,他能给转化成具体路径
- 另一种是powershell有一种路径写法,他能给转化成我们熟悉的路径写法
- Convert-Path
PS /Users/sixdog/Documents/PowerShell> Convert-Path .
/Users/sixdog/Documents/PowerShell
PS /Users/sixdog/Documents/PowerShell> Convert-Path ~
/Users/sixdog
PS /Users/sixdog/Documents/PowerShell> Convert-Path ..
/Users/sixdog/Documents
#这种powershell的写法,mac没这个路径,试不了,官网原码参照
PS C:\> Convert-Path HKLM:\Software\Microsoft
HKEY_LOCAL_MACHINE\Software\Microsoft
- 我试的结果像是转化为csv格式
- ConvertFrom-Csv
太多了,就试到这里了,大致了解这玩意命令的套路就行了,现用现查
- ConvertFrom-Csv