PowerShell与cmd的对比点评(一)——文件定位和操作

相比PowerShell,Windows用户可能更熟悉cmd.exe,本文将通过说明cmd.exe在文件定位和操作方面的语法特性来加深读者对PowerShell语法的理解。
PowerShell提供了一系列默认别名,使得用户熟知的cmd.exe命令在PowerShell中可用,常用的命令如dir、copy及sort等。在这些命令中使用特定的操作选项时,不能使用cmd.exe原有的选项形式。这是因为PowerShell使用了不同的选项语法,而且原有的cmd.exe的命令名在PowerShell中仅以别名形式出现,真正起作用的是基于.NET框架的cmdlet。cmd.exe的每个命令包含相关的多个功能,这样即可通过尽量少的命令实现更多的功能。功能之间通过参数来区分,然而自动化脚本很难实现复杂功能的集成。PowerShell中包含大量cmdlet,其中每个cmdlet包含的选项很少,这样便于复杂功能的集成。如PowerShell中使用的dir不带排序选项,如果需要排序输出的内容,需要调用sort命令实现。表A-1所示为cmd.exe和PowerShell中常见的定位操作命令,其中cmd.exe中基础的导航命令对应PowerShell中的对等命令,即前面章节提到的别名。PowerShell列中每条命令的第2条(用斜体区分)是未使用别名的版本,如“dir”是“Get-Children”的别名。
表A-1 cmd.exe和PowerShell中常见的定位操作 操作描述
cmd.exe语法
PowerShell
列出当前目录包含文件清单
dir
dir
Get-Children
列出匹配特定模式的所有文件
dir *.txt
dir *.txt
Get-Children *.txt
列出当前目录子文件夹中的所有文件
dir /s
dir -rec
Get-Children -rec
列出子目录中所有的文本文件
dir /s *.txt
dir –rec –filter *.txt
Get-Children –rec –filter *.txt
按照最后写入时间将文件排序
dir /o:-d
dir | sort –desc LastWriteTime
将当前目录设置为特定路径
cd c:\windows
cd c:\windows
Set-Location c:\windows

表A-2所示为在PowerShell中与cmd.exe对应的常用文件操作命令。
表A-2 cmd.exe和PowerShell中的常用文件操作命令 操作描述
cmd.exe语法
PowerShell
将文件内容答印到屏幕
type file.txt
type file.txt
Get-Content file.txt
复制单个文件
copy f1.txt f1.txt
copy f1.txt f2.txt
Copy-Item f1.txt f2.txt
复制多个文件
copy f1.txt,f2.txt,f3.txt c:\
copy f1.txt,f2.txt,f3.txt c:\
将多个文件连接到一起
copy f1.txt+f2.txt+f3.txt f4.txt
type f1,txt,t2,txt,f3.txt > f4.txt
删除单个文件
del file.txt
del file.txt
Remove-Item file.txt
删除当前目录中的所有文本文件
del *.txt
del *.txt
Remove-Item *.txt
删除当前目录的子目录中的所有文本文件
del /s *.txt
del –rec *.txt
Remove-Item –rec *.txt

PowerShell提供管道操作符(|),并支持cmd.exe中的重定向操作符(>和>>、2>和2>&1)。但其不支持输入重定向,需要使用Get-Content cmdlet或其别名type。
作者: 付海军
出处:http://blog.csdn.net/fuhj02
版权:本文版权归作者和csdn共有
转载:欢迎转载,为了保存作者的创作热情,请按要求【转载】,谢谢
要求:未经作者同意,必须保留此段声明;必须在文章中给出原文连接;否则必究法律责任
个人网站: http://txj.lzuer.com/
Tags: 

延伸阅读

最新评论

发表评论