1.创建数组
"a","b","c" 字符串数组
1,2,3 整数数组
@() 空数组 @(2) 一个元素的数组
1,(2,3),4 数组包含数组
,"hello" 一个元素的数组
$a[2..20] 返回从第3个元素到第21个元素
数组下标从零开始。
a.要创建指定大小的数组,使用New-Object命令
$myArray = New-Object string[] 10
$myArray[5] = "hello" ;
b.创建一个交错的多为数组(一个数组的数组),可以使用@()数组语法。
$myArray = @((1,2,3,4),(5,6,7,8));
$myArray[1][2]; 返回 :7
$myArray[0][1]; 返回 :2
<#
交错数组的分析图:
0 1 2 3
0 1 2 3 4
1 5 6 7 8
#>
创建一个交错数组
$a = @(,(,1)) $a[0][0] 返回:1
b.创建一个(非交错)多维数组,使用New-Object命令
$multid = New-Object "int32[,]" 2,4
$multid[0,0] = 2;
$multid[1,3] = 8;
注意:要检查列表是否包含指定的项,使用-contains运算符。
c.合并数组:要合并数组,需要使用加法运算符(+)
$firstArray = "a","b","c","d";
$secondArray = 1,2,3,4 ;
$thirdArray = $firstArray + $secondArray ;
d.使用运算符-ne、-notlike和-notmatch从数组中移出元素。
$array = "a1","a2","ac","a3","a2";
$array -notlike "*1*";
$array = $array -ne "a2" ;(实际改变数组的值)
2.用户交互
a.读取用户输入的一行,使用Read-Host命令:
$directory = Read-Host "Enter a directory ";
Enter a directory :d:\temp
b.读取用户输入的按键
$key = [Console]::ReadKey($true);
$key
c.在交互比较频繁的情况下(比如你关心用户按下的是向上键或向下键)
$key = $Host.UI.RawUI.ReadKey("NoEcho,IncludekeyDown");
$key
$key.ControlkeyState
3.为长时间运行的任务提供进度更新
#为长时间命令显示状态更新
$actity = " A long-running operation";
$status ="Initializing";
#Initialize the long-running operation
for($counter = 0 ; $counter -lt 100 ; $counter++ )
{
$currentOperation = "Initializing item $counter" ;
Write-Progress -Activity $actity -Status $status `
-PercentComplete $counter `
-CurrentOperation $currentOperation
Start-Sleep -Milliseconds 20 ;
}
4.跟踪和错误管理
a.若要访问到目前为止生成错误的列表,需要使用$error变量
$error.Count ;
$error.Clear();
注意:若想在表和列表中查看错误(Format-Table或Format-List)必须指定-Force以重写自定义的试图。
b.若要写入警告和错误,分别使用Write-Warning和Write-Error命令。使用throw语句生成一个终止错误。
5.查看和修改环境变量
a.查看环境变量:dir env:
b.访问环境变量:$env:path
c.若访问的环境变量值是在计算机或用户级别配置的,可以使用
[Environment]::GetEnvironmentVariable("path","User");
d.要永久性地设置这些计算机或特定于用户的环境变量,可以使用
[Environment]::SetEnvironmentVariable(<variable>,<value>,<target>);
e.若要确定常见的系统路径和特殊文件夹的位置,可以使用
[Environment]::GetFolderPath("System");
注意你可能不具备所有提供的这些代名词,所以查看所有这些值的一种方法是使用[Enum]::GetValues();
[Enum]::GetValues([Environment+specialFolder]);
分享到:
相关推荐
本文介绍PowerShell中使用正则表达式的查找文件的方法,PowerShell的正则表达式与微软其它语言的正则表达式是一样的,使用非常方便。
以管理员身份运行 PowerShell,并输入 set-executionpolicy remotesigned ,再输入“y”如图: 再次返回到VsCode中就可以使用虚拟环境库 分析原因: Windows PowerShell默认是Restricted(防止运行没有数字签名的...
当我获得70-410认证时,将在午餐月第二版中学习Windows PowerShell <---将继续。 ISBN-10:1617291080 Python精通Python-网络和安全性<---建议不要从本课程中学习,完全含糊且充满了预制脚本。 木偶
01.入门笔记之看雪Web安全学习及异或解密示例; 02.Chrome浏览器保留密码功能渗透解析及登录加密入门笔记; 03.Burp Suite工具安装配置、Proxy基础用法及暴库示例; 04.实验吧CTF实战之WEB渗透和隐写术解密; 05.IDA...
本文为学习笔记 从github上clone相关源码 css样式:https://github.com/lycHub/ng-wyy 网易云音乐接口:https://github.com/Binaryify/NeteaseCloudMusicApi 编译运行网易云接口 shift+右键单击NeteaseCloudMusicApi...
嗨,人们! 用咖啡因探索科技! 我为编码而疯狂,并且是一位技术爱好者,他随时准备讨论有关技术的想法和事物。 每天学习新事物,并修改以前的事物以使其...终端:Powershell HP笔记本i5 16GB 2TB(hdd)256(ssd)
MyPoSH:我学习和收集的笔记和脚本
1)Python 我) ii) ... xii)Coursera深度学习课程笔记 xiii) xiv) 5)NLP 我) ii) iii) 6)ASP.NET i) 7)火力基地 我) 8)PowerShell的 i) 9)Google Colab i) 10
但是我目前正在学习精通PowerShell和javascript。 在此存储库中,除了笔记之外,我还希望共享我的项目和文章,以便与他人共享我的工作和知识。 您可以在[![LinkedIn] [3.2]] [3]上找到我技术与工具
以前所未有的方式在您的应用程序之间共享代码,浏览数据,编写和学习。 :Jupyter,nteract和Visual Studio Code等设备嵌入式脚本引擎替代品.NET交互式IS .NET已释放带有.NET的笔记本Jupyter和Nteract 是一个流行的...
这是我学习事物的方式-通过做,跟随,修补,探索,重复和做笔记。 {%hint style =“ warning”%} 不要将这些笔记中的所有内容或任何内容视为理所当然不要指望这些笔记是详尽无遗的,或者不要完全涵盖它们所产生的...
天蓝色云平台 我正在学习Azure云平台; 因此,我决定方便地使用我的笔记。 如果您决定使用它们,请小心,因为它们可能不准确。 对于您如何使用它们以及对您的情况可能产生什么影响,我不承担任何责任。