其实系统注册表和文件系统视作同样的东西进行处理的,由于注册表我一般不去操作,并且我也非常的不喜欢注册表,因此,注册表的操作我就不在这儿说明,仅列出文件系统(filesystem)的操作.
一、location (我在什么位置,将要操作哪个位置)
首先是get-help,有哪些有关于location操作的
PS C:/> get-help *-location |format-table -autosize -wrap
Name Category Synopsis
---- -------- --------
Get-Location Cmdlet 获取当前工作位置的相关信息。
Set-Location Cmdlet 将当前工作位置设置为指定的位置。
Push-Location Cmdlet 将当前位置推入堆栈。
Pop-Location Cmdlet 将当前位置更改为最近推入到堆栈中的位置。您可以从默认堆栈
中或从您使用 Push-Location 创建的堆栈中弹出位置。
get-location操作最无聊,因为你一眼就能看出当前的位置,如:
PS C:/> get-location
Path
----
C:/
PS不用说是指powershell ,位置,输入提示符。get-location就取中间的C:/(位置),
PS C:/> set-location //tom/d$
PS Microsoft.PowerShell.Core/FileSystem:://tom/d$> get-location
Path
----
Microsoft.PowerShell.Core/FileSystem:://tom/d$
这个信息则更完整,就连提供程序(Microsoft.PowerShell.Core/FileSystem)都显示出来了,还有几种提供程序的,可以从下面这个命令的结果中看出:
PS Microsoft.PowerShell.Core/FileSystem:://tom/d$> get-psdrive
Name Provider Root
---- -------- ----
Alias Alias
C FileSystem C:/
cert Certificate /
D FileSystem D:/
E FileSystem E:/
Env Environment
F FileSystem F:/
Function Function
G FileSystem G:/
H FileSystem H:/
HKCU Registry HKEY_CURRENT_USER
HKLM Registry HKEY_LOCAL_MACHINE
Variable Variable
除了fs还有registry/env/alias/variable/function等,我目前看到的也就上面的几种类型.
set-location类似于CD,把某个位置设置为当前工作位置,有一个参数-passthru,其实也就是将变化后的位置显示一下,个人感觉这个参数没有多少意义,实在不知道变化后的位置,那就get-location一下,如果命令非常复杂,那更用不着这个参数,因为你在操作非常复杂的命令的时候能不小心吗?能不知道将要去哪个位置吗?
push和pop是一对合作伙伴,时间长的关系好,后进先出,也就是栈的概念,事实也是如此,请看以下操作:
PS C:/> push-location -path c:/windows
PS