PowerShell
简介
Powershell(Windows Powershell)是Microsoft为Windows设计的新的命令行程序,这个Windows内置的命令行shell包括交互式提示和脚本环境,它们可以独立使用也可以交互使用。其设计初衷是为方便系统管理员进行大批量重复性的操作。 PowerShell 引入了 cmdlet的概念(cmdlet读作“command-let”,一看就是cmd的超集,事实也是如此,所有cmd命令都可以在Powershell中执行)
我们平时所见的大多数的脚本(bat,perl,bash,sh),接受(输入)和返回(输出)的都是文本。Powershell是在 .Net公共语言运行时(CLR-Common Language Runtime)和.Net Framework的基础上构建的,所以Powershell可以接受和返回.Net对象。也就是说,Powershell是面向对象的脚本语言。
安装与启动
从官网,自认下载PowerShell
的安装包.msi文件
,如下图所示。
下载后打开文件,运行安装程序,提示需要安装Windows Management Framework 4.0 or newer
,如下图所示。
自从此处下载的Windows management framework,应是官网。点击.msu
文件安装Windows management framework
后,即可开始安装PowerShell。点击PowerShell.msi
文件,一直下一步即可。
自认,是通过PowerShell
根目录下的pwsh.exe
来运行。
用途(待确认)
在Windows系统中使用Linux指令
能够使用.Net类型和COM对象
补入这篇博客,尤其是“三、利用.Net类型和COM对象”
面向对象的指令
用法/指令
补入这篇博客。
以最大化窗口的形式启动Windows上的软件
start 软件名启动项全名(包括后缀) -WindowStyle Maximized
:启动Jmeter时,输入指令start jmeter.bat(jmeter.bat在Windows桌面) -WindowStyle Maximized
,启动时的jmeter命令提示行窗口是最大化的,但是Jmeter的图形界面未发生变化。
查看类中的方法的名称和声明(返回值类型 方法名)
$Host | Get-Member -MemberType Method
:$Host
是类名,Get-Member
列出该类对象的全部“对应成员”,MemberType Method
列出的全部对应成员的类型
赋值为Method
,即方法——所以本语句的含义是查询出该类对象的所有成员方法。
PowerShell界面编程的指令(可以直接在PowerShell窗口中编写方法代码并调用)
- 输入代码:
$source = @"代码"@
- 添加代码(到PowerShell中):
Add-Type -TypeDefinition $source
将上一步输入的代码块$source
添加到PowerShell中,否则越过本步直接调用$source = @"代码"@
中的方法,会有如下提示。
- 调用上一步“已添加到PowerShell”的代码:
[BasicTest]::Add(4, 3)
:在PowerShell中调用BasicTest
类的静态方法。类中的静态方法可以直接使用,而不用创建该类对象——[类名]::方法名(方法参数1,方法参数2)
。$basicTestObject = New-Object BasicTest
:在PowerShell中创建BasicTest
类的对象$basicTestObject
,$对象名 = New-Object 类名
,因为在下一步要调用的Multiply(int a, int b)
是成员方法,所以必须要先在本步创建类的对象,然后才能在下一步通过$对象名.Multiply(5,2)
来调用。$basicTestObject.Multiply(5, 2)
:在PowerShell中使用类BasicTest
的成员方法,以对象.方法
的形式完成。,如下图所示。
如下图所示,是自己已确认过的例子。
$source = @"
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)
Windows系统中的Linux指令
[Environment]::GetLogicalDrives()
获取Windows目前盘符
效果如下所示。
PowerShell脚本文件.ps1
补入这篇博客中的用法,尤其是倒数第二个图(学习ps1文件的代码写法)。