欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

探索PowerShell (二) PowerShell的基本操作

程序员文章站 2024-01-16 08:46:40
powershell控制台 打开powershell,显示如下界面: 命令提示符前缀为:ps c:\users\marui>  ps的意...

powershell控制台

打开powershell,显示如下界面:

探索PowerShell (二) PowerShell的基本操作

命令提示符前缀为:

ps c:\users\marui> 

ps的意思为正在运行powershell中,而c:则是我的主目录驱动器号,不同机器会有所不同。

最最最基本的操作与cmd、dos、sh等相同。

cmdlet命令

虽然有超过一百条新的powershell命令需要去学习,但是,与大多数命令行界面一样,powershell命令已经被标准化。它使用“动词-名词”的命名形式作为一个cmdlet命令。该标准大大降低了学习难度,并且对所有cmdlet命令提供了更好的描述性帮助。

要查看当前powershell中所有的cmdlet,使用如下命令:

get-command <enter> 

探索PowerShell (二) PowerShell的基本操作

接下来,让我们使用特定的动词列出所有的命令。下面是使用动词"get“筛选后的cmdlet:

get-command -verb get <enter> 

探索PowerShell (二) PowerShell的基本操作

其他命令同样可以使用这种筛选方法。这样子组合之后,上百条命令就很好记忆了。

简单举例其他基本常用命令:

get-help <enter>

get-help * <enter>

get-service <enter>

get-help get-service <enter>

试试下列按键吧,看看会发生什么:


page up - 跳转到历史缓冲区中的第一个命令。

page down - 跳转到历史缓冲区中的最后一个命令。 

uparrow - 向后显示历史缓冲区命令。 

downarrow - 向进显示历史缓冲区命令。 

home - 跳跃到命令行的开头。

end - 跳跃到命令行的末尾。

ctrl + leftarrow - 到最左侧字符。

ctrl + rightarrow - 到右侧单词结尾。

tab - 完成输入(在控制台中键入get - c和按tab键,再按下tab试试)。

f7键 - 显示历史缓冲区(使用向上和向下箭头键来浏览缓冲区)。

或者在别的窗口复制一段文字,在powershell上按鼠标右键试试,类似于sh下的鼠标中键的作用。


在powershell命令中,还有一类被称之为“原生窗口命令”。例如我们可以从powershell命令行启动services.msc的gui窗口。

services.msc <enter>

既然我们使用powershell,那么就可以无视services.msc了。

下列是对服务进行操作的命令<以brower服务为例>:

get-service -name browser <enter>
stop-service -name browser <enter>
get-service -name browser <enter>

探索PowerShell (二) PowerShell的基本操作

需要注意的是:在使用cmdlet停止服务时不会有任何迹象来向用户告知该服务已经成功停止的。

同样,启动服务命令:

start-service -name browser <enter> 

启动服务后也不会有任何反馈性迹象表明服务正常启动,除非服务启动失败。

这一段的命令就简单介绍到这里,是不是很简单?只需要记着“动词-名词”这一形式就可以了!

下面贴出powershell中的基本运算语法示例

ps c:\> 99 + 100
199

在powershell中,可以非常简单的进行数学运算,你所要做的仅仅是输入表达式这么简单,结果就会自动输出,在此过程中不需要使用其他shell中的打印语句等,运算结束后得到的执行结果也不会被随意丢弃掉,而是直接输出,往后我们会学习如何将结果进行丢弃。

ps c:\> "hello world!"
hello world!

"hello world”,就像上面的数学计算,直接输入字符串即可。使用过perl脚本的会觉得这里很熟悉,因为powershell很大程度上借鉴了perl的优点。

ps c:\> (7 - 2 * 3) / 5
0.2

对于四则混合运算,powershell也能很好的支持。在表达式中可以使用( )来调整运算符的优先级和结合性。需要注意的是,powershell支持若干种不同的数据类型,例如:int、float、double等等。往后我们会接触到类型转换等内容。

ps c:\> (2+2)*3/7 > c:\fun.txt
ps c:\> type c:\fun.txt
1.71428571428571

同样,除了屏幕输出外,我们可以将结果存储到临时文件,然后使用type命令将文件的结果取回。

ps c:\> $n = (2+2)*3
ps c:\> $n
12
ps c:\> $n / 7
1.71428571428571

另外,我们还可以通过对变量赋值,将运算结果存储到变量中,并使用该变量进行后续的计算。

ps c:\> $files = dir
ps c:\> $files[3]

ps c:\> $files = dir
ps c:\> $files[3]
    directory: microsoft.powershell.core\filesystem::c:\
mode lastwritetime length name
---- ------------- ------ ----
d-r-- 2010-3-26 21:25 program files

作为一个面向对象的语言,我们可以简单的将命令返回的结果赋值给变量。这里的$files中包含了目前所处目录下的目录项的对象集合,使用普通数组访问语法就可以获得该位置的对象。例子中显示了program files目录。注意:powershell中的数组下标是从0开始的,这点与.net common language runtime完全一致。

这一节就到这里。有兴趣的童鞋可以继续关注下一节内容。