相比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-ChildItem”的别名。
表A-1 cmd.exe和PowerShell中常见的定位操作
操作描述
cmd.exe语法
PowerShell
列出当前目录包含文件清单
dir
dir
Get-ChildItem
列出匹配特定模式的所有文件
dir *.txt
dir *.txt
Get-ChildItem *.txt
列出当前目录子文件夹中的所有文件
dir /s
dir -rec
Get-ChildItem -rec
列出子目录中所有的文本文件
dir /s *.txt
dir –rec –filter *.txt
Get-ChildItem –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。
来源:https://blog.csdn.net/fuhj02/article/details/6416014?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.control&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-2.control