我需要使用 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 /?
。