使用 PowerShell 更改批处理文件中的目录

使用 PowerShell 更改批处理文件中的目录

我需要使用 PowerShell 中的批处理文件来更改目录。

假设批处理文件 go.bat 包含两行代码。我在 q: 目录中。

   c:
   cd c:\abc\def

当我运行时go.bat,我仍然处于 q:

答案1

虽然我同意你正在做的事情应该可行,但你始终可以尝试 Powershell cmdlet“set-location”。它基本上以相同的方式工作:

set-location c:\abc\def

答案2

运行批处理文件时,PowerShell 会创建一个 CMD.EXE 进程来运行该文件。如果更改 CMD.EXE 进程内的工作目录,则不会影响 PowerShell 的当前工作目录。这是设计使然。

答案3

刚刚遇到这个问题,我想要一个可以在 Powershell 和 CMD 中运行的跳转到目录的脚本。

我可以通过创建一个同名的脚本来解决这个问题,一个是 powershell 脚本,另一个是 bat 文件:

电源外壳

Set-Location C:\abc\def

cd C:\abc\def

假设脚本名为“def”。如果我在 Powershell 中输入 def,它将运行 ps1 版本,如果我在 cmd 中输入它,它将运行 bat。您必须有重复的文件,但您可以在 shell 之间使用同名的命令。

答案4

尝试:

   cd /D c:\abc\def

除了更改驱动器的当前目录之外,还可以使用 /D 开关更改当前驱动器 - 尽管我不确定您尝试的方法为什么不起作用......

如果该文件夹不存在,您将收到一条错误消息:

The system cannot find the path specified.

您可以cd通过键入来查看有关该命令的一些帮助cd /?

相关内容