get-command 通过这个命令你可以获取当前系统下所有可以使用的命令,这是我们查询命令时要经常用到的,当然这里面除了命令以外,还包括function,也就是函数
get-process 这个命令可以让我们获取当前系统所有正在运行的进程,这个命令有一个别名叫做ps,在cmd中有个tasklist,也可以查看所有的进程,当然这个tasklist是一个exe,在powershell中你也可以使用
get-help get-childitem 通过这命令,你可以获取get-childitem这个命令的所有帮助,如果加上 -Full 那么你将会获取所有的帮助信息
get-history 使用这个命令,你将会获取你自己输入的命令行的历史记录,这一点非常方便,cmd就没有这样的功能,powershell这个功能很不错
get-alias 键入不带有任何参数的 get-alias,你将会获取当前系统支持的所有别名,这非常有用,这意味着你在编写脚本的时候可以少些很多字符....其实这确实是个让人困扰的地方,很多人因为看到powershell的命令太长而排斥
get-culture 通过这个命令你将获取你所在区域
get-date 这个更加方便,可以直接获取时间,而且这个时间是格式化好的
get-host 通过这个get-host 命令,我们将获取当前powershell的版本
get-member 这个命令我们通常需要配置管道符来使用,它可以获取建一个对象的类型以及方法和属性,这东西说白了,就是可以查看一个对象的方法和属性,这个比python方便很多
get-random 这个命令可以帮助我们获取一个随机数,通过指定 Max 和 Min参数我们可以获取在指定数值之间的随机数
get-uiculture 和 get-culture 一样都是用来获取用户区域的,顾名思义,get-uiculture是用来获取ui的区域性设置的
get-unique 这个命令说白了就是来去重的,官方解释是获取元素的唯一项,不就是去重吗,这个命令很不错,真是不看不知道,一看才发现powershell是如此方便和强大
get-variable 获取当前控制台窗口的所有变量,用起来很方便
get-childitem 这个命令其实就是powershell版本的dir,其实cmd的dir已经很好用了,只是get-childitem更加强大,除了文件它还可以遍历注册表以及证书目录
get-content 可以获取文本文件中的内容,当然了,这个命令是支持指定编码的,而如果在批处理中,你只能使用for命令来读取文本文件....
get-itemproperty 可以获取指定项的属性,就以文件夹和文件举例,Windows目录的属性是 d ,也就是directory的意思,代表文件夹;而 findstr.exe 这命令是一个文件,其属性是 a 也就是 archived file 存档文件的意思
get-location 就类似于 cmd 中 双百分比号cd 以及 linux中的 pwd 其意思是获取当前路径
get-psdrive 可以获取所有的驱动器,在这里我们可以看到 C D E 三个盘符,以及环境变量 和 函数 一节注册表 和 证书路径等,这个命令指定了get-childitem可以从哪儿获取内容
get-item 获取指定位置的项,判断这个项是否存在。在powershell,dir可以遍历的目录不局限于路径还包括注册表什么,因此我们一般在powershell都称为项
get-service 可以获取本地或者远程计算机正在运行的服务,是的,它也可以获取远程计算机的服务,这个命令其实和services组件服务中的内容是一致的
get-executionpolicy 获取powershell 当前控制台窗口的执行策略
set-alias gp1 get-help 通过这个命令,我们可以设置get-help的命令别名,当然这个别名只在当前控制台有效果,如果我们输入pwsh回车,进入新的powershell这些alias都会失效,要特别注意的是,在设置时,别名在前,cmdlet在后
set-variable 这个命令其实就是$str 可以直接进行赋值,平时我们不使用这种方法来完成变量的赋值操作,set-variable 这样写那么多变量怕是要累坏。。
set-location 可以设置当前路径,就类似于批处理的 cd 以及 pushd 命令,这个命令的别名其实就是cd,这意味着我们可以使用cd
set-content 这个命令对于 get-content ,用来输出内容到文本,就是就是写文件的一个命令,可以指定是覆盖写入还是追加写入
Set-ExecutionPolicy 设置powerhsell的执行策略 这里设置的远程签名,当执行网络上下载的ps文件需要签名认证,而本地自己编写的ps文件则可以直接运行
write-host 将内容写出到控制台窗口,这个命令具有一个最大的问题就是不支持管道符号,所以大家都用的很少
write-process 用来设置简易的进度条,我对于这些东西不感冒,感觉也不是很好看
write-debug 显示调试信息,默认情况下是不显示 这个信息的,必须要设置 $debugpreferenc 为 Continue 才能显示debug信息
write-verbose 显示冗余信息,和write-debug一样,需要用一个开关 $verbosepreference 设置为 continue 打开这个输出
write-warning 和 write-error 也是同样的设置方式,只要将errorperference 和 warningperference 设置为 continue 使用这两个命令输出信息
write-output 这个命令很多人都应该很熟悉,用来输出内容的,通常我们用它来替代write-host ,这个命令支持管道符,这意味着你可以使用它来传递信息,当它后面没有管道符时将会输出信息到屏幕上
clear-variable 之前我们讲过get-variable 以及 set-varaible 的设置方法,而clear-variable 顾名思义是用来清空变量值的,注意这里的清空不是删除,变量还在的,只是值没了
remove-varaible 可以用来移除一个变量值,经过remove的变量名,再次引用将会报错,因为不存在这个变量
在powershell中连接字符串使用加号来完成,同java一样,这类符号用起来更加方便。
$date.AddHours(-5) 在get-date中有一个 addHours 以及 addDays 等函数,可以用来增添日期时间,非常方便的用法,负数即为减去的时间
start-sleep -m 3000 用来延时3000毫秒,就是延时3秒的意思
wait-process 用来等待一个进程结束,以notepad为例,在启动notepad之后,wait-process挂起,直到notepad进程消失以后,脚本才会继续执行
test-path 用来判断一个路径是否存在,当路径不存在时返回false,存在则返回true
w32tm 设置以及同步时间,在这一系列命令中 start-service w32time用来启动服务,这个必须先启动,不然一上来就执行 w32tm resync 会报错的,之后我们set-date设置时间为 明天,然后再用w32tm 同步时间