PowerShell 2.0 实践(一)操作文件系统
2011-10-06 09:59
337 查看
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
支持代码着色、断点调试等,但是不支持智能感知:
2、PowerGUI Script Editor:Quest公司出品,是一个优秀的IDE,分为免费版与专业版,官方主页。
方便的智能感知与语法提示,同样支持断点调试:
我将使用免费版的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返回命令执行后的结果,方便查看命令是否执行成功。看以看出,Move-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
若需要跨驱动器移动目录,则可以先复制,再删除。
注意:
1、Move-Item可以跨驱动器移动文件,目录不可以。
2、Copy-Item
文件、目录均可以跨驱动器复制。
4、Remove-Item:删除文件、目录。
4.1、删除文件:
Remove-Item
-Path
E:\PSTest\NewDir\new.txt
-Recurse
4.2、删除目录:
Remove-Item
-Path
E:\PSTest\NewDir
若目录中包含文件,则会提示:
若不想提示就加上-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会调用指定文件的默认程序来打开文件,就像双击打开文件一样:
6.2、打开目录:
Invoke-Item
C:\Windows
与打开文件类似,调用Windows资源管理器。
小结:
本次我们学习了PowerShell文件系统操作的基本命令,用了常见的参数,其他参数的用法可以参考文档。PowerShell的命令相当灵活,很多参数可以自由组合,顺序不定,给管理员提供了极大的便捷性。文件系统是计算机管理的基础部分,后续篇章会继续关注其他部分。
示例脚本下载
本系列所有脚本均在Windows Server 2008 R2(PowerShell 2.0) + PowerGUI Script Editor中测试通过。
PowerShell 开发工具:
1、Windows PowerShell ISE:微软提供的一种轻量级的Power Shell IDE,默认存放在
%SystemRoot%\WINDOWS\system32\WindowsPowerShell\v1.0
支持代码着色、断点调试等,但是不支持智能感知:
2、PowerGUI Script Editor:Quest公司出品,是一个优秀的IDE,分为免费版与专业版,官方主页。
方便的智能感知与语法提示,同样支持断点调试:
我将使用免费版的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返回命令执行后的结果,方便查看命令是否执行成功。看以看出,Move-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
若需要跨驱动器移动目录,则可以先复制,再删除。
注意:
1、Move-Item可以跨驱动器移动文件,目录不可以。
2、Copy-Item
文件、目录均可以跨驱动器复制。
4、Remove-Item:删除文件、目录。
4.1、删除文件:
Remove-Item
-Path
E:\PSTest\NewDir\new.txt
-Recurse
4.2、删除目录:
Remove-Item
-Path
E:\PSTest\NewDir
若目录中包含文件,则会提示:
若不想提示就加上-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会调用指定文件的默认程序来打开文件,就像双击打开文件一样:
6.2、打开目录:
Invoke-Item
C:\Windows
与打开文件类似,调用Windows资源管理器。
小结:
本次我们学习了PowerShell文件系统操作的基本命令,用了常见的参数,其他参数的用法可以参考文档。PowerShell的命令相当灵活,很多参数可以自由组合,顺序不定,给管理员提供了极大的便捷性。文件系统是计算机管理的基础部分,后续篇章会继续关注其他部分。
相关文章推荐
- PowerShell 2.0 实践(一)操作文件系统
- PowerShell 2.0 实践(二)操作文件系统(续)
- PowerShell 2.0 实践(二)操作文件系统(续)
- PowerShell 2.0 实践(一)操作文件系统
- PowerShell 2.0 实践(二)操作文件系统(续)
- PowerShell 2.0 实践(一)操作文件系统
- PowerShell 2.0 实践(一)操作文件系统
- Microsoft .NET Framework 2.0 Application Development Foundation 翻译系列9(第二章 I/O:第一课 文件系统操作)
- reiserfs文件系统反删除(Undelete)数据恢复操作的实践
- PowerShell 2.0 实践(三)操作Windows服务
- PowerShell 2.0 实践(三)操作Windows服务
- PowerShell 2.0 实践(三)操作Windows服务
- Go实践-文件系统操作
- 文件系统管理 之 reiserfs文件系统反删除(Undelete)操作的实践
- IS笔记-同名文件支持不同系统的操作
- Linux 的 EXT4 文件系统的历史、特性以及最佳实践
- MAC 系统下的快捷键 和 终端下的文件目录操作
- 第2.1.1章 WEB系统最佳实践Spring文件配置之spring-cache.xml
- Python在win系统下对文件操作时文件路径问题
- windows7系统下系统保护恢复文件操作图解