Powershell 在PS shell和CMD shell中运行命令的区别

Powershell 在PS shell和CMD shell中运行命令的区别,powershell,Powershell,我不经常使用powershell,所以这可能是一个明显的问题,但我的google fu让我失望 在Windows平台上运行以下命令有什么区别 在cmd提示符中: C:\>powershell cd d:\foo 在powershell提示符中: PS C:\>cd d:\foo 后者按预期更改驱动器和目录。前者不起任何作用。基本上,当您运行powershell cd d:\foo时,它会打开一个单独的powershell并运行cd命令。与第二个相反,您实际上处于Powershell会话中。因此,

我不经常使用powershell,所以这可能是一个明显的问题,但我的google fu让我失望

Windows平台上运行以下命令有什么区别

在cmd提示符中:
C:\>powershell cd d:\foo

在powershell提示符中:
PS C:\>cd d:\foo


后者按预期更改驱动器和目录。前者不起任何作用。

基本上,当您运行
powershell cd d:\foo时,它会打开一个单独的powershell并运行cd命令。与第二个相反,您实际上处于Powershell会话中。因此,它(第一个)确实打开Powershell进程>更改目录,然后关闭进程。

您正在更改Powershell进程的工作目录,但这不会更改父进程的工作目录。这两个命令的作用是相同的,只是当第一段代码返回到CMD时,它没有改变它的工作目录,您没有观察到实际的变化;pwd
vs.
cd d:\foo;pwd
在powershell中,您将看到在这两种情况下,它都将工作目录更改为d:\foo。这应该是一个答案-非常清楚且易于理解。这非常有意义。不知道为什么我没想到。