当前位置: 首页 > 科技观察

PowerShell入门(二):PowerShell和Cmd命令行

时间:2023-03-14 19:25:09 科技观察

PowerShell中的命令WindowsPowerShell是一个命令行shell和脚本环境,它使命令行用户和脚本编写者能够利用.NETFramework的强大功能.它引入了许多非常有用的新概念,进一步扩展了您在Windows命令提示符和Windows脚本宿主环境中获得的知识和脚本,并创建脚本  启动PowerShell,您可以在其中输入几个常用的Cmd命令PSD:\Projects\Practise\PowerShell>dir目录:D:\Projects\Practise\PowerShellModeLastWriteTimeLengthName--------------------------d----1/23/201312:35PMd1d----1/23/201312:35PMd2-a---1/21/20138:38PM36314alias.txt-a---1/21/20138:32PM241530cmdlets.txtorPSD:\Projects\Practise\PowerShell>cd..PSD:\Projects\Practise>  结果和我们的预期差不多。但是,能不能说PowerShell就是PowerShell是命令行的增强版呢?再次尝试以下命令:PSD:\Projects\Practise\PowerShell>dir/addir:Cannotfindpath'D:\ad'becauseitdoesnotexist....  这与我们的预期相去甚远。在Cmd中,应该会输出当前位置的子文件夹的信息,但是在这里,它似乎并没有理解我们的参数。以下命令是相同的:PSD:\Projects\Practise\PowerShell>fc.\alias.txt.\cmdlets.txtFormat-Custom:找不到接受参数'.\cmdlets.txt'的位置参数。…  本来想调用fc命令比较两个文件,结果被解释为Format-Custom,报错。这里发生了什么?这里我们可以回答前两个问题:PowerShell不能执行Cmd命令行的所有命令。准确地说,PowerShell不能执行任何Cmd命令,至少不能直接执行。这是因为PowerShell并不是Cmd的新版本或增强版本,但它的一些命令从外观到功能都与Cmd命令非常相似。#p#PowerShell与Cmd命令行的关系  PowerShell可以作为一个应用程序运行在Cmd中。它的运行方式有点像在Cmd中运行SQLCmd或者Nslookup。在没有明确退出之前,它始终是应用程序在运行环境中,所有输入,包括命令和数据,都由应用程序接受和处理。D:\Projects\Practise\PowerShell>powershellWindowsPowerShell版权所有(C)2012MicrosoftCorporation。保留所有权利。PSD:\Projects\Practise\PowerShell>get-helpTOPICWindowsPowerShellHelpSystem…Cmd在PowerShell中也可以作为应用程序运行,其工作方式类似于在Cmd中运行PowerShell:PSD:\Projects\Practise\PowerShell>cmdMicrosoftWindows[版本6.2.9200](c)2012MicrosoftCorporation。保留所有权利。D:\Projects\Practise\PowerShell>dir/adVolumeindriveDisDocVolumeSerialNumberisA6C5-E7CEDirectoryofD:\Projects\Practise\PowerShell01/30/201304:54PM

。01/30/201304:54PM。.01/23/201312:35PMd101/23/201312:35PMd2…  PowerShell允许用户通过Alias功能使用Cmd风格的PowerShell命令。这样做的好处是,用户在初次接触PowerShell时,就像使用Cmd一样友好、熟悉。缺点是很容易将PowerShell与Cmd混淆。但是当你明白Alias的概念和Get-Alias命令后,这个问题就迎刃而解了:PSD:\Projects\Practise\PowerShell>get-aliasdir,echo,typeCommandTypeNameModuleName---------------------------别名dir->Get-ChildItemAliascd->Set-LocationAliasecho->Write-Output  也就是说dir实际上是PowerShell的Get-ChildItem命令的别名,cd是Set-Location的别名。..至此,PowerShell和Cmd的关系就解决了。Cmd命令行会被PowerShell取代吗?  我一直很讨厌“谁比谁差”“谁应该取代谁”之类的问题,这里也一样,新的东西肯定有优点,旧的东西也有粉丝。从现在PowerShell被接受的程度来看,Cmd短时间内不会被PowerShell取代。从长远来看,谁知道呢。我只知道,多一种选择,多一种自由,多一种可能