Powershell 可以嵌入CMD环境并执行CMD命令吗?


PowerShell交流中心Powershell 可以嵌入CMD环境并执行CMD命令吗?
0
JMilk Fan asked 9 年 ago

今天打算用powershell 写一个脚本,其中会在PS中加载cmd环境,然后在cmd环境中执行其他指令的情况。但是出现问题于,PS执行到cmd这一行后就单独运行了cmd的进程,无法实现继续在cmd环境中执行下面的指令。 请问有指令能实现在PS中的同一个界面中实现加载cmd并且执行cmd指令吗? Thanks a lot 🙂

0 Answers
1
Mooser Lee 管理员 answered 9 年 ago

调用cmd必然会引入一个cmd进程,这个避免不了的。但我们可以尽量不引入一个cmd窗口。
如果命令不多直接使用cmd /c ,比如:

cmd /c "ipconfig & ping pstips.net"

如果命令很长,将命令保存批处理bat文件,然后在PowerShell中调用。

PS> .\test.bat

C:\>ipconfig

Windows IP 配置


以太网适配器 vEthernet (Internal Ethernet Port Windows Phone Emulator

连接特定的 DNS 后缀 . . . . . . . :
本地链接 IPv6 地址. . . . . . . . : fe80::c8da:bddd:d1d6:2895%14
IPv4 地址 . . . . . . . . . . . . : 169.254.80.80
子网掩码 . . . . . . . . . . . . : 255.255.0.0
默认网关. . . . . . . . . . . . . :

以太网适配器 vEthernet (VM-NET):

连接特定的 DNS 后缀 . . . . . . . :
本地链接 IPv6 地址. . . . . . . . : fe80::31e3:44f2:c81c:ba4d%12
IPv4 地址 . . . . . . . . . . . . : 192.168.0.100
子网掩码 . . . . . . . . . . . . : 255.255.255.0
默认网关. . . . . . . . . . . . . : 192.168.0.1

以太网适配器 以太网:

媒体状态 . . . . . . . . . . . . : 媒体已断开
连接特定的 DNS 后缀 . . . . . . . :

隧道适配器 isatap.{63970A2F-F370-4DA9-A0DA-EE11C0C62DB7}:

媒体状态 . . . . . . . . . . . . : 媒体已断开
连接特定的 DNS 后缀 . . . . . . . :

隧道适配器 isatap.{6601EF6D-0C4D-40E0-959E-459828F0C022}:

媒体状态 . . . . . . . . . . . . : 媒体已断开
连接特定的 DNS 后缀 . . . . . . . :

C:\>ping pstips.net

正在 Ping pstips.net [101.71.56.225] 具有 32 字节的数据:
来自 101.71.56.225 的回复: 字节=32 时间=187ms TTL=55
来自 101.71.56.225 的回复: 字节=32 时间=166ms TTL=55
来自 101.71.56.225 的回复: 字节=32 时间=184ms TTL=55
来自 101.71.56.225 的回复: 字节=32 时间=188ms TTL=55

101.71.56.225 的 Ping 统计信息:
数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),
往返行程的估计时间(以毫秒为单位):
最短 = 166ms,最长 = 188ms,平均 = 181ms
JMilk Fan replied 9 年 ago

Thx :)最近忙完又回来研究一下这个问题。我有这样的需求:PS D:\Users\oe-fanguiju\rdtools> cmdMicrosoft Windows [Version 6.2.9200](c) 2012 Microsoft Corporation. All rights reserved.D:\Users\oe-fanguiju\rdtools>RDEnv.cmd*** RDENV.CMD ***Setting RD Tools environment [rd_cmt_stable.991231-0001]These jumpbox environment variables have been created: _JUMPBOX_DCNAME=BJB _JUMPBOX_ISVIPENABLED=yes _JUMPBOX_ISDIPENABLED=no _JUMPBOX_HASFABRICBACKENDACCESS=noUser folder located at D:\Users\oe-fanguiju\rdtools\User\oe-fanguijuD:\Users\oe-fanguiju\rdtools>fcclient当我学Script的时候每次执行到cmd 这条执行就会跳转到另外一个shell,实际上我是需要在同一个shell引入rdenv的环境并完成后续的操作的。有什么指令可以实现吗 ?Thx a lot

JMilk Fan replied 9 年 ago

。。。评论框貌似不换行