发表于 2018-9-3 07:53:00

PowerShell 2.0 实践(一)操作文件系统

  PowerShell是微软着力打造的下一代脚本语言,基于.NET Framework,功能强大,易于扩展,与微软及其第三方公司的许多产品进行了集成。Windows 7和Windows Server 2008 R2已经内置了PowerShell 2.0,其他操作系统需要单独下载,可以在这里下载。
  示例脚本下载
  本系列所有脚本均在Windows Server 2008 R2(PowerShell 2.0) + PowerGUI Script Editor中测试通过。
  PowerShell 开发工具:

  1、Windows PowerShell ISE:微软提供的一种轻量级的Power Shell>  %SystemRoot%\WINDOWS\system32\WindowsPowerShell\v1.0
http://images.cnblogs.com/cnblogs_com/brooks-dotnet/071810_0649_PowerShell21.png
  支持代码着色、断点调试等,但是不支持智能感知:
http://images.cnblogs.com/cnblogs_com/brooks-dotnet/071810_0649_PowerShell22.png
  2、PowerGUI Script Editor:Quest公司出品,是一个优秀的IDE,分为免费版与专业版,官方主页。
  方便的智能感知与语法提示,同样支持断点调试:
http://images.cnblogs.com/cnblogs_com/brooks-dotnet/071810_0649_PowerShell23.png
  我将使用免费版的PowerGUI Script Editor进行测试。
  3、PowerShell Plus:另一种强大的IDE,商业软件,官方主页。
  推荐资源:
  TechNet PowerShell主页
  TechNet PowerShell脚本中心
  国人的PowerShell V2博客,很有深度,每月更新,推荐阅读。
  一个PowerShell社区
  PowerGUI社区,包含了很多扩展、示例、博客等。
  Idera PowerShell主页,包含了很多扩展、示例、博客等。
  微软PowerShell官方博客
  下面我们来看一下PowerShell在文件系统中的应用。
  PowerShell中没有文件的概念,只有项【Item】的概念,像Windows驱动器、目录、文件、注册表、变量等信息都被抽象成了"项"的概念,PowerShell使用"项"来进行统一管理。本次我们只关注文件系统,即目录、文件,其他系统后续篇章再做了解。
  关于文件系统的命令有如下一些:
  New-Item
  Copy-Item
  Move-Item
  Remove-Item
  Rename-Item
  Invoke-Item
  当然,这些命令不仅仅用于文件系统,像驱动器、注册表等都可以使用,本次我们只从文件系统的角度去关注这些命令。

[*]  New-Item:在指定位置创建文件或目录。
  1.1、创建一个目录:
  New-Item-PathE:\PSTest\NewDir-ItemTypeDirectory–Force
  在E盘创建了PSTest\NewDir的目录结构,ItemType指出创建的项的类型,这里是目录"Directory",Force表明若目录结构存在则覆盖。
  1.2、创建一个文件:
  New-Item-PathE:\PSTest\NewDir\new.txt-ItemTypeFile–Force
  在E:\PSTest\NewDir创建了new.txt文本文件,ItemType类型为File,存在则覆盖。
  还有很多参数,如WhatIf:预判如果执行该命令将发生什么等,详细参数列表及其用法请参阅PowerShell文档,这里只列出了最常用的。
  2、Copy-Item:复制文件、目录。
  2.1、复制文件:
  Copy-Item-PathE:\PSTest\NewDir\new.txt-DestinationD:\-PassThru–Force
  将一个文件从E盘的一个目录复制到D盘,若存在则覆盖。PassThru会强制PowerShell返回命令执行后的结果,方便查看命令是否执行成功。看以看出,Move-Item支持跨驱动器复制文件。
  2.2、复制目录:
  Copy-Item-PathE:\PSTest\NewDir-DestinationD:\-PassThru-Force–Recurse
  将E盘中的一个目录复制到D盘,若存在则覆盖。请注意"Recurse"这个参数,只有加上这个参数PowerShell才会复制源目录中的所有子目录及其文件,否则只会复制源目录一个空壳。
  3、Move-Item:移动文件、目录,相当于剪切。
  3.1、移动文件:
  Move-Item-PathE:\PSTest\NewDir\new.txt-DestinationE:\-PassThru–Force
  移动一个文件到根目录,若存在则覆盖,支持跨驱动器移动:
  Move-Item-PathE:\PSTest\NewDir\new.txt-DestinationD:\-PassThru–Force
  3.2、移动目录:
  Move-Item-PathE:\PSTest\NewDir-DestinationE:\a\NewDir-PassThru–Force
  移动一个目录,若存在则覆盖,注意源目录与目标目录不能位于同一目录中,且不能跨驱动器移动目录:
  Move-Item-PathE:\PSTest\NewDir-DestinationD:\-PassThru–Force
  Error:

  Move-Item : Source and destination path must have>  .
  At line:1 char:10
  + Move-Item
页: [1]
查看完整版本: PowerShell 2.0 实践(一)操作文件系统