Welcome

首页 / 编程脚本 / Windows Powershell 执行外部命令

Powershell 能够像CMD一样很好的执行外部命令。
通过netstat查看网络端口状态
PS C:PS> netstatActive Connections Proto Local Address Foreign AddressState 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查看自己的网络配置
PS C:PS> ipconfigWindows IP ConfigurationEthernet adapter Local Area Connection:Connection-specific DNS Suffix . : www.mossfly.comLink-local IPv6 Address . . . . . : fe80::b9dd:91e33:33f0:7885%10IPv4 Address. . . . . . . . . . . : 192.168.140.100Subnet Mask . . . . . . . . . . . : 255.255.252.0Default Gateway . . . . . . . . . : 192.168.140.1Tunnel adapter isatap.www.mossfly.com:Connection-specific DNS Suffix . : www.mossfly.comLink-local IPv6 Address . . . . . : fe80::5efe:192.168.140.100%11Default Gateway . . . . . . . . . :Tunnel adapter Teredo Tunneling Pseudo-Interface:Media State . . . . . . . . . . . : Media disconnectedConnection-specific DNS Suffix . :
route print查看路由信息
PS C:PS> route printIPv4 Route Table===========================================================================Active Routes:Network DestinationNetmask GatewayInterface Metric 0.0.0.0 0.0.0.0 192.168.140.1192.168.140.100 20192.0.0.0255.0.0.0 On-link 192.0.0.1306192.0.0.1 255.255.255.255 On-link 192.0.0.1306 192.255.255.255 255.255.255.255 On-link 192.0.0.1306 192.168.140.0255.255.252.0 On-link192.168.140.100276192.168.140.100 255.255.255.255 On-link192.168.140.100276192.168.143.255 255.255.255.255 On-link192.168.140.100276224.0.0.0240.0.0.0 On-link 192.0.0.1306224.0.0.0240.0.0.0 On-link192.168.140.100276 255.255.255.255 255.255.255.255 On-link 192.0.0.1306 255.255.255.255 255.255.255.255 On-link192.168.140.100276===========================================================================Persistent Routes: NoneIPv6 Route Table===========================================================================Active Routes: If Metric Network Destination Gateway 1306 ::1/128 On-link 10276 fe80::/64On-link 11281 fe80::5efe:192.168.140.100/128On-link 10276 fe80::b965:91f3:33a0:7285/128On-link 1306 ff00::/8 On-link 10276 ff00::/8 On-link===========================================================================Persistent Routes: None
启动CMD控制台
启动CMD控制台键入cmd或者cmd.exe,退出cmd可以通过命令exit。
PS C:PS> cmdMicrosoft Windows [Version 6.1.7601]Copyright (c) 2009 Microsoft Corporation. All rights reserved.C:PS>exitPS C:PS>
查找可用的Cmd控制台命令
Cmd.exe 通过 /c 来接收命令参数,在Cmd中help可以查看可用的命令,所以可以通过Cmd c help 查找可用的Cmd控制台命令
PS C:PS> cmd /c help有关某个命令的详细信息,请键入 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:Windowssystem32 这个目录,而这个目录已经默认被包含在Powershell的环境变量$env:Path中。
C:WINDOWSsystem32;C:WINDOWS;C:WINDOWSSystem32Wbem;C:WINDOWSSystem32WindowsPowerShellv1.0;C:Program Files (x86)Windows Kits8.1Windows Performance Toolkit;C:Program FilesMicrosoft SQL Server110ToolsBinn;C:Program Files (x86)Microsoft SDKsTypeScript1.0;C:Program FilesMicrosoftWeb Platform Installer
而wordpad.exe 所在的“%ProgramFiles%Windows NTAccessorieswordpad.exe“目录却没有包含,可以先进入这个目录,再运行wordpad,或者将wordpad所在的目录加入到环境变量中,$env:Path=$env:Path+”%ProgramFiles%Windows NTAccessories”。
默认键入一个字符串,powershell会将它原样输出,如果该字符串是一个命令或者启动程序,在字符串前加‘&"可以执行命令,或者启动程序。
PS C:PS> "ls"lsPS C:PS> &"ls"Directory: C:PSModeLastWriteTime Length Name----------------- ------ ----d----2011/11/23 17:25ABC-a---2011/11/23 17:36 14 a.txt-a---2011/11/23 17:25 0 b.txt-a---2011/11/23 17:25 0 c.txt-a---2011/11/23 17:25 0 d.txt-a---2011/11/23 17:37242 test.txtPS C:PS> "cmd.exe"cmd.exePS C:PS> &"cmd.exe"Microsoft Windows [Version 6.1.7601]Copyright (c) 2009 Microsoft Corporation. All rights reserved.