设为首页 收藏本站
查看: 1231|回复: 0

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

[复制链接]

尚未签到

发表于 2017-5-20 08:29:40 | 显示全部楼层 |阅读模式
  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 IDE,默认存放在
  %SystemRoot%\WINDOWS\system32\WindowsPowerShell\v1.0
DSC0000.png

  支持代码着色、断点调试等,但是不支持智能感知:
DSC0001.png

  2、PowerGUI Script Editor:Quest公司出品,是一个优秀的IDE,分为免费版与专业版,官方主页
  方便的智能感知与语法提示,同样支持断点调试:
DSC0002.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 -Path E:\PSTest\NewDir -ItemType Directory –Force
  在E盘创建了PSTest\NewDir的目录结构,ItemType指出创建的项的类型,这里是目录"Directory",Force表明若目录结构存在则覆盖。
  1.2、创建一个文件:
  New-Item -Path E:\PSTest\NewDir\new.txt -ItemType File –Force
  在E:\PSTest\NewDir创建了new.txt文本文件,ItemType类型为File,存在则覆盖。
  还有很多参数,如WhatIf:预判如果执行该命令将发生什么等,详细参数列表及其用法请参阅PowerShell文档,这里只列出了最常用的。
  2、Copy-Item:复制文件、目录。
  2.1、复制文件:
  Copy-Item -Path E:\PSTest\NewDir\new.txt -Destination D:\ -PassThru –Force
  将一个文件从E盘的一个目录复制到D盘,若存在则覆盖。PassThru会强制PowerShell返回命令执行后的结果,方便查看命令是否执行成功。看以看出,Copy-Item支持跨驱动器复制文件。
  2.2、复制目录:
  Copy-Item -Path E:\PSTest\NewDir -Destination D:\ -PassThru -Force –Recurse
  将E盘中的一个目录复制到D盘,若存在则覆盖。请注意"Recurse"这个参数,只有加上这个参数PowerShell才会复制源目录中的所有子目录及其文件,否则只会复制源目录一个空壳。
  3、Move-Item:移动文件、目录,相当于剪切。
  3.1、移动文件:
  Move-Item -Path E:\PSTest\NewDir\new.txt -Destination E:\ -PassThru –Force
  移动一个文件到根目录,若存在则覆盖,支持跨驱动器移动:
  Move-Item -Path E:\PSTest\NewDir\new.txt -Destination D:\ -PassThru –Force
  3.2、移动目录:
  Move-Item -Path E:\PSTest\NewDir -Destination E:\a\NewDir -PassThru –Force
  移动一个目录,若存在则覆盖,注意源目录与目标目录不能位于同一目录中,且不能跨驱动器移动目录:
  Move-Item -Path E:\PSTest\NewDir -Destination D:\ -PassThru –Force
  Error:
  Move-Item : Source and destination path must have identical roots. Move will not work across volumes
  .
  At line:1 char:10
  + Move-Item <<<< -Path E:\PSTest\NewDir -Destination D:\ -PassThru -Force
  + CategoryInfo : WriteError: (E:\PSTest\NewDir:DirectoryInfo) [Move-Item], IOException
  + FullyQualifiedErrorId : MoveDirectoryItemIOError,Microsoft.PowerShell.Commands.MoveItemCommand
  若需要跨驱动器移动目录,则可以先复制,再删除。
  注意:
  1Move-Item可以跨驱动器移动文件,目录不可以。
  2Copy-Item 文件、目录均可以跨驱动器复制。
   
  4、Remove-Item:删除文件、目录。
  4.1、删除文件:
  Remove-Item -Path E:\PSTest\NewDir\new.txt -Recurse
  4.2、删除目录:
  Remove-Item -Path E:\PSTest\NewDir
  若目录中包含文件,则会提示:
DSC0003.png

  若不想提示就加上-Recurse参数,想提示加上-Confirm。
  5、Rename-Item:重命名文件、目录。
  5.1、重命名文件:
  Rename-Item -Path E:\PSTest\NewDir\new.txt old.txt –PassThru
  5.2、重命名目录:
  Rename-Item -Path E:\PSTest\NewDir OldDir –PassThru
  6、Invoke-Item:打开文件、目录。
  6.1、打开文件:
  Invoke-Item C:\Windows\win.ini
  Windows会调用指定文件的默认程序来打开文件,就像双击打开文件一样:
DSC0004.png

  6.2、打开目录:
  Invoke-Item C:\Windows
  与打开文件类似,调用Windows资源管理器。
  小结:
  本次我们学习了PowerShell文件系统操作的基本命令,用了常见的参数,其他参数的用法可以参考文档。PowerShell的命令相当灵活,很多参数可以自由组合,顺序不定,给管理员提供了极大的便捷性。文件系统是计算机管理的基础部分,后续篇章会继续关注其他部分。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-379197-1-1.html 上篇帖子: PowerShell基础教程(21)——处理打印机 下篇帖子: PowerShell基础教程(7)——使用格式命令更改输出视图
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表