[TOC]
3.运行脚本
描述: 脚本和批处理都属于伪可执行文件
,它们只是包含了若干命令行解释器能够解释和执行
的命令行代码。
[TOC]
描述: 脚本和批处理都属于伪可执行文件
,它们只是包含了若干命令行解释器能够解释和执行
的命令行代码。
1 | # 1.执行批处理文件:批处理是扩展名为”.bat”的文本文件,它可以包含任何cmd控制台能够处理的命令 |
注意事项:
$C = Get-Culture | Select-Object -Property *
@{TestKey = (‘x’ * 200)} | Out-String -Width 250
PS C:\Users\WeiyiGeek> Get-Command -Name *Printer
CommandType Name Version Source
Function Add-Printer 1.1 PrintManagement
Function Get-Printer 1.1 PrintManagement
Function Remove-Printer 1.1 PrintManagement
Function Rename-Printer 1.1 PrintManagement
Function Set-Printer 1.1 PrintManagement
Cmdlet Out-Printer 3.1.0.0 Microsoft.PowerShell.Utility
选择对象的属性
包含在每一个对象中的属性可能有很多,但是并不是所有的属性你都感兴趣,这时可以使用Select-Object 限制对象的属性。接下来的例子演示如果获取机器上匿名帐号的完整信息。
PS C:Usersv-bali.FAREAST> Get-WmiObject Win32_UserAccount -filter “LocalAccount=True AND Name=’guest’”
AccountType : 512
Caption : myhomeguest
Domain : myhome
SID : S-1-5-21-3064017030-3269374297-2491181182-501
FullName :
Name : guest
如果你只对用户名、描述,启用感兴趣。
PS C:Powershell> Get-WmiObject Win32_UserAccount -filter “LocalAccount=True AND
Name=’guest’” | Select-Object Name,Description,Disabled
Name Description Disabled
guest Built-in account for gu… True
#使用比较运算符”like”过滤当前应用的数组, 这里可以用比较运算符结合控制台命令匹配出所有条件。
@(ipconfig /all) -like “IPV4“
pageid: 327
IPv4 地址 . . . . . . . . . . . . : 192.168.1.88(首选)
形用户界面
Cmdlet
Out-GridView
Show-Command
Show-ControlPanelItem
Show-EventLog
参数
PS编程之命令行参数传递与绑定:
方法1:$args 参数位置传值法
它实际是一个对象数组,注意输入参数的位置是固定的并且$args[0]
表示命令中输入的第一个参数
并非脚本名称(与Bash Shell有区别
)
1 | # args.ps1 文件内容 |
方法2:CmdletBinding 脚本内部变量名
,适合于传递多个参数值可以指定参数名称,并且参数值的位置随机。
1 | # DeployBuildEnv.ps1 文件内容 |
注意事项:
linux版的powershell也完全支持
)。模块查找与安装:
Tips:没有该find-module模块的点击,注意需要以管理员权限运行;1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16# 模块查找
find-module *ssh*
# Version Name Repository Description
# ------- ---- ---------- -----------
# 2.2 Posh-SSH PSGallery Provide SSH and SCP functionality for executing commands against remote hosts.
# 0.0.3 dockeraccesshelper PSGallery Allow a user account to access the docker engine without elevated access rights
# 安装Posh-SSH的模块
Install-Module Posh-SSH
# 你正在从不受信任的存储库安装模块。如果你信任该存储库,请通过运行 Set-PSRepository cmdlet 更改其 InstallationPolicy
# 值。是否确实要从“PSGallery”安装模块?
[Y] 是(Y) [A] 全是(A) [N] 否(N) [L] 全否(L) [S] 暂停(S) [?] 帮助 (默认值为“N”): y
# 删除模块
# 删除Posh-SSH的目录:C:\Program Files\WindowsPowerShell\Modules\Posh-SSH
remove-module -name posh-ssh -Force -Verbose -Debug
#查看模块命令
get-command -Module posh-ssh
在PowerShell中如何检测模块是否存在
我们可以使用Get-Module的另一个参数-ListAvailable来列出是否含有潜在的模块。
Get-Module -ListAvailable -Name Azure
Powershell检测网络中存活地址1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26# 方式1
for($i=1; $i -le 255; $i++){
ping -n 3 10.0.0.$i >> Paddr.txt
}
# 方式2
$Ping = New-Object system.net.networkinformation.ping
1..253 | % { $Ping.send( "192.168.12.$_" ) | select address,status} | Out-File -FilePath IPaddr.txt -Encoding utf8
$IP = Get-Content "IPaddr.txt" | Where-Object { $_ -match "Success" }
-split $IP | Where-Object { $_ -like "192*" } | Out-File -FilePath IP-Successful.txt -Encoding utf8
$hostname = foreach ( $i in $IPS ) { [System.Net.DNS]::GetHostByAddress($i).HostName;$i}
$hostname
[System.Net.DNS]::GetHostName()
[System.Net.DNS]::GetHostAddresses("192.168.12.188")
188..199 | % { [System.Net.DNS]::GetHostEntry("192.168.12.194").HostName; }
188..199 | % { [System.Net.DNS]::GetHostEntry("192.168.12.$_").HostName; }
HostName Aliases AddressList
-------- ------- -----------
USER-MVFI1L2V69 {} {fe80::5936:33a7:29bf:7d6e%5, 192.168.12.188}
https://docs.microsoft.com/zh-cn/dotnet/api/system.net.dns?view=netcore-3.1
下面再附带两个循环读取一个文件夹下的所有子文件夹下的、所有的文件个数的代码:
Get-ChildItem -Path $env:windir -Force -Recurse -ErrorAction SilentlyContinue |
Where-Object { $_.PSIsContainer -eq $false } |
Measure-Object |
Select-Object -ExpandProperty Count
[System.IO.Directory]::GetFiles(“F:\gzkz-2020\new”, “*”, “AllDirectories”).Count
1 | param |
1 | PS C:/Documents and Settings/Administrator> ./Convert-Image.ps1 -inFile 01.jpg |
1 | $gifs=dir -Path "C:\Users\WeiyiGeek\Documents\Tencent Files\291238737\FileRecv\GIF" -Filter '*.gif'; |
类库探源——System.Drawing.Bitmap
https://www.cnblogs.com/Aphasia/p/4158827.html
http://www.colorconsole.de/PS_Windows/de/Get-Counter.htm
Get-Counter
该函数下可以把现有的电脑监控统计数据 直接提取出来 ,
你好看友,欢迎关注博主微信公众号哟! ❤
这将是我持续更新文章的动力源泉,谢谢支持!(๑′ᴗ‵๑)
温馨提示: 未解锁的用户不能粘贴复制文章内容哟!
方式1.请访问本博主的B站【WeiyiGeek】首页关注UP主,
将自动随机获取解锁验证码。
Method 2.Please visit 【My Twitter】. There is an article verification code in the homepage.
方式3.扫一扫下方二维码,关注本站官方公众号
回复:验证码
将获取解锁(有效期7天)本站所有技术文章哟!
@WeiyiGeek - 为了能到远方,脚下的每一步都不能少
欢迎各位志同道合的朋友一起学习交流,如文章有误请在下方留下您宝贵的经验知识,个人邮箱地址【master#weiyigeek.top】
或者个人公众号【WeiyiGeek】
联系我。
更多文章来源于【WeiyiGeek Blog - 为了能到远方,脚下的每一步都不能少】, 个人首页地址( https://weiyigeek.top )
专栏书写不易,如果您觉得这个专栏还不错的,请给这篇专栏 【点个赞、投个币、收个藏、关个注、转个发、赞个助】,这将对我的肯定,我将持续整理发布更多优质原创文章!。
最后更新时间:
文章原始路径:_posts/编程世界/Powershell/Program/PS编程补充说明.md
转载注明出处,原文地址:https://blog.weiyigeek.top/2019/11-17-358.html
本站文章内容遵循 知识共享 署名 - 非商业性 - 相同方式共享 4.0 国际协议