PowerShell系列四:容器操作
  ymimIgn1vImn 2023年11月02日 26 0

容器

容器是一个很通用的概念。比如文件、文件夹、注册表、磁盘分区、数组、hash表、命名空间、用户组、OU、数据库、数据表等等,它们的共同点就是包含了数据。 在PowerShell中一切都是从"PSDrive"开始的,您熟悉了操作PSDrive,基本就涵盖了对资源的操作。

Get-PSDrive
#输出
Name           Used (GB)     Free (GB) Provider      Root                                                ---------     --------- --------      ----                                               
Alias                                  Alias
C                  48.92         12.75 FileSystem    C:\                                             
Cert                                   Certificate   \
D                  16.42        483.56 FileSystem    D:\
Env                                    Environment
F                  11.21        188.77 FileSystem    F:\
Function                               Function
HKCU                                   Registry      HKEY_CURRENT_USER
HKLM                                   Registry      HKEY_LOCAL_MACHINE
Temp               48.92         12.75 FileSystem    C:\Users\happy\AppData\Local\Temp\
Variable                               Variable
WSMan                                  WSMan

我们来解读一下上面的输出

  • Name :可以理解为限定前缀
  • Used,Free 文件系统才有值
  • PowerShell 提供程序是 .NET 程序,提供对专用数据存储的访问,以便更轻松地查看和管理。 数据显示在驱动器中,你可以像在硬盘驱动器上一样访问路径中的数据。 可以使用提供程序支持的任何内置 cmdlet 来管理提供程序驱动器中的数据。 此外,还可以使用专为数据设计的自定义 cmdlet。 提供程序还可以向内置 cmdlet 添加动态参数。 这些参数仅在将 cmdlet 与提供程序数据一起使用时可用。

  • 和挂载网络驱动器,或者快捷方式很像 PsDrive的结构据我的了解分为两种,一种是类似文件系统的树形结构、一种是前缀限定的变量.格式为"$<Name>:value"。访问方式有点不同,我们来尝试一下。

注册表、Cert、Wsman文件系统(树型结构)

New-PSDrive -Name User -PSProvider FileSystem -Root C:\users\<Your>\
New-PSDrive -Name scan -PSProvider FileSystem -Root \\files\scan
Get-PSDrive
#输出
User               48.86         12.80 FileSystem    C:\users\happy\
ls cert:
ls wsman:

变量(前缀限定)

两个变量的驱动器:

  1. Env:系统的环境变量
  2. Variable: PowerShell的自动变量 访问方式和树型不同,文件系统大家都访问的很熟悉了,就不介绍了。 请注意区别 *item* cmdlet后面的驱动器是没有'$'符号的,驱动器和项名之间有个':' 请注意 **取值的语法"$Env:windir" '$'符号后面跟驱动器名加':'**。
#遍历
Get-ChildItem Env:
Get-ChildItem variable:

#单独变量
Get-Item Env:windir
Get-Item variable:profile

#读取值
$Env:windir
$variable:profile

函数和别名(前缀限定)

Alias,Function

#别名
Set-Item -Path alias:np -Value "c:\windows\notepad.exe"
#函数:设置提示符
Set-Item -Path function:prompt -Value {'PS >'}

小技巧

  • 使用环境变量或者自动变量在命令行参数或脚本中的时候最好是加 ""
  • 环境变量和自动变量修改只在当前会话中有用,关闭后就会被丢弃
  • 修改一些东西的时候如果提示失败,可以试试 -Force参数
  • 可以在$profile里设置一些变量,这样每次打开Shell都会自动创建
  • 一个很好的练习方法,每次操作电脑的时候,想一下我用PoserShell可以操作吗?

最后

博客只能起到介绍性的作用,官方文档才是最终归宿。那么我为什么要写博客,您为什么要花时间来看博客? 博客能够提供您一条入门的路径,或者说一个知识点的介绍。帮您在茫茫多的文档中划定一个范围,让您能够有所适从。博客会提供一些示例,让您快速判断对这个知识点是不是感兴趣。如果您决定去阅读文档,那么我想请您一定要多花点时间在about开头的文档上。会让您的技术水平有质的提升 About文档

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
  eHipUjOuzYYH   2023年12月07日   27   0   0 数据乐观锁redis
  jnZtF7Co41Wg   2023年12月09日   27   0   0 客户端服务端数据
  jnZtF7Co41Wg   2023年12月11日   37   0   0 文件系统xmlGNU