Windows Powershell 执行外部命令
Powershell能够像CMD一样很好的执行外部命令。
通过netstat查看网络端口状态
PSC:\PS>netstat ActiveConnections ProtoLocalAddressForeignAddressState TCP192.168.0.100:3049192.168.0.88:7575ESTABLISHED TCP192.168.0.100:3052192.168.0.88:7575ESTABLISHED TCP192.168.0.100:3061192.168.0.88:7575ESTABLISHED
通过IPConfig查看自己的网络配置
PSC:\PS>ipconfig WindowsIPConfiguration EthernetadapterLocalAreaConnection: Connection-specificDNSSuffix.:www.mossfly.com Link-localIPv6Address.....:fe80::b9dd:91e33:33f0:7885%10 IPv4Address...........:192.168.140.100 SubnetMask...........:255.255.252.0 DefaultGateway.........:192.168.140.1 Tunneladapterisatap.www.mossfly.com: Connection-specificDNSSuffix.:www.mossfly.com Link-localIPv6Address.....:fe80::5efe:192.168.140.100%11 DefaultGateway.........: TunneladapterTeredoTunnelingPseudo-Interface: MediaState...........:Mediadisconnected Connection-specificDNSSuffix.:
routeprint查看路由信息
PSC:\PS>routeprint IPv4RouteTable =========================================================================== ActiveRoutes: NetworkDestinationNetmaskGatewayInterfaceMetric 0.0.0.00.0.0.0192.168.140.1192.168.140.10020 192.0.0.0255.0.0.0On-link192.0.0.1306 192.0.0.1255.255.255.255On-link192.0.0.1306 192.255.255.255255.255.255.255On-link192.0.0.1306 192.168.140.0255.255.252.0On-link192.168.140.100276 192.168.140.100255.255.255.255On-link192.168.140.100276 192.168.143.255255.255.255.255On-link192.168.140.100276 224.0.0.0240.0.0.0On-link192.0.0.1306 224.0.0.0240.0.0.0On-link192.168.140.100276 255.255.255.255255.255.255.255On-link192.0.0.1306 255.255.255.255255.255.255.255On-link192.168.140.100276 =========================================================================== PersistentRoutes: None IPv6RouteTable =========================================================================== ActiveRoutes: IfMetricNetworkDestinationGateway 1306::1/128On-link 10276fe80::/64On-link 11281fe80::5efe:192.168.140.100/128 On-link 10276fe80::b965:91f3:33a0:7285/128 On-link 1306ff00::/8On-link 10276ff00::/8On-link =========================================================================== PersistentRoutes: None
启动CMD控制台
启动CMD控制台键入cmd或者cmd.exe,退出cmd可以通过命令exit。
PSC:\PS>cmd MicrosoftWindows[Version6.1.7601] Copyright(c)2009MicrosoftCorporation.Allrightsreserved. C:\PS>exit PSC:\PS>
查找可用的Cmd控制台命令
Cmd.exe通过/c来接收命令参数,在Cmd中help可以查看可用的命令,所以可以通过Cmdchelp查找可用的Cmd控制台命令
PSC:\PS>cmd/chelp 有关某个命令的详细信息,请键入HELP命令名 ASSOC显示或修改文件扩展名关联。 ATTRIB显示或更改文件属性。 BREAK设置或清除扩展式CTRL+C检查。 BCDEDIT设置启动数据库中的属性以控制启动加载。 CACLS显示或修改文件的访问控制列表(ACL)。 CALL从另一个批处理程序调用这一个。 CD显示当前目录的名称或将其更改。 CHCP显示或设置活动代码页数。 CHDIR显示当前目录的名称或将其更改。 CHKDSK检查磁盘并显示状态报告。 CHKNTFS显示或修改启动时间磁盘检查。 CLS清除屏幕。 CMD打开另一个Windows命令解释程序窗口。 COLOR设置默认控制台前景和背景颜色。 COMP比较两个或两套文件的内容。 COMPACT显示或更改NTFS分区上文件的压缩。 CONVERT将FAT卷转换成NTFS。您不能转换 当前驱动器。 COPY将至少一个文件复制到另一个位置。 DATE显示或设置日期。 DEL删除至少一个文件。 DIR显示一个目录中的文件和子目录。 DISKCOMP比较两个软盘的内容。 DISKCOPY将一个软盘的内容复制到另一个软盘。 DISKPART显示或配置磁盘分区属性。 DOSKEY编辑命令行、调用Windows命令并创建宏。 DRIVERQUERY显示当前设备驱动程序状态和属性。 ECHO显示消息,或将命令回显打开或关上。 ENDLOCAL结束批文件中环境更改的本地化。 ERASE删除一个或多个文件。 EXIT退出CMD.EXE程序(命令解释程序)。 FC比较两个文件或两个文件集并显示它们之间的不同。 FIND在一个或多个文件中搜索一个文本字符串。 FINDSTR在多个文件中搜索字符串。 FOR为一套文件中的每个文件运行一个指定的命令。 FORMAT格式化磁盘,以便跟Windows使用。 FSUTIL显示或配置文件系统的属性。 FTYPE显示或修改用在文件扩展名关联的文件类型。 GOTO将Windows命令解释程序指向批处理程序 中某个带标签的行。 GPRESULT显示机器或用户的组策略信息。 GRAFTABL启用Windows在图形模式显示扩展字符集。 HELP提供Windows命令的帮助信息。 ICACLS显示、修改、备份或还原文件和 目录的ACL。 IF在批处理程序中执行有条件的处理过程。 LABEL创建、更改或删除磁盘的卷标。 MD创建一个目录。 MKDIR创建一个目录。 MKLINK创建符号链接和硬链接 MODE配置系统设备。 MORE逐屏显示输出。 MOVE将一个或多个文件从一个目录移动到另一个目录。 OPENFILES显示远程用户为了文件共享而打开的文件。 PATH为可执行文件显示或设置搜索路径。 PAUSE停止批处理文件的处理并显示信息。 POPD还原由PUSHD保存的当前目录上一次的值。 PRINT打印一个文本文件。 PROMPT改变Windows命令提示。 PUSHD保存当前目录,然后对其进行更改。 RD删除目录。 RECOVER从损坏的磁盘中恢复可读取的信息。 REM记录批处理文件或CONFIG.SYS中的注释。 REN重新命名文件。 RENAME重新命名文件。 REPLACE替换文件。 RMDIR删除目录。 ROBOCOPY复制文件和目录树的高级实用程序 SET显示、设置或删除Windows环境变量。 SETLOCAL开始用批文件改变环境的本地化。 SC显示或配置服务(后台处理)。 SCHTASKS安排命令和程序在一部计算机上按计划运行。 SHIFT调整批处理文件中可替换参数的位置。 SHUTDOWN让机器在本地或远程正确关闭。 SORT将输入排序。 START打开单独视窗运行指定程序或命令。 SUBST将驱动器号与路径关联。 SYSTEMINFO显示机器的具体的属性和配置。 TASKLIST显示包括服务的所有当前运行的任务。 TASKKILL终止正在运行的进程或应用程序。 TIME显示或设置系统时间。 TITLE设置CMD.EXE会话的窗口标题。 TREE以图形显示启动器或路径的目录结构。 TYPE显示文本文件的内容。 VER显示Windows的版本。 VERIFY告诉Windows验证文件是否正确写入磁盘。 VOL显示磁盘卷标和序列号。 XCOPY复制文件和目录树。 WMIC在交互命令外壳里显示WMI信息。
启动外部程序
为什么可以通过notpad打开记事本,不能通过wordpad打开写字板?
因为notepad.exe位于C:Windows\system32这个目录,而这个目录已经默认被包含在Powershell的环境变量$env:Path中。
C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\ProgramFiles(x 86)\WindowsKits\8.1\WindowsPerformanceToolkit\;C:\ProgramFiles\MicrosoftSQLServer\110\Tools\Binn\;C:\ProgramFile s(x86)\MicrosoftSDKs\TypeScript\1.0\;C:\ProgramFiles\Microsoft\WebPlatformInstaller\
而wordpad.exe所在的“%ProgramFiles%\WindowsNT\Accessories\wordpad.exe“目录却没有包含,可以先进入这个目录,再运行wordpad,或者将wordpad所在的目录加入到环境变量中,$env:Path=$env:Path+”%ProgramFiles%\WindowsNT\Accessories”。
默认键入一个字符串,powershell会将它原样输出,如果该字符串是一个命令或者启动程序,在字符串前加‘&'可以执行命令,或者启动程序。
PSC:\PS>"ls" ls PSC:\PS>&"ls" Directory:C:\PS ModeLastWriteTimeLengthName --------------------------- d----2011/11/2317:25ABC -a---2011/11/2317:3614a.txt -a---2011/11/2317:250b.txt -a---2011/11/2317:250c.txt -a---2011/11/2317:250d.txt -a---2011/11/2317:37242test.txt PSC:\PS>"cmd.exe" cmd.exe PSC:\PS>&"cmd.exe" MicrosoftWindows[Version6.1.7601] Copyright(c)2009MicrosoftCorporation.Allrightsreserved.