【问题标题】:How to resolve Powershell start cmd path error?如何解决 Powershell 启动 cmd 路径错误?
【发布时间】:2019-03-18 09:34:50
【问题描述】:

当我在 powershell 控制台上使用以下命令时,它可以正常工作,并且我看到管理命令提示符打开并且脚本 sudo.bat 正确执行。

sudo.bat 包含一行,cd c:\temp\

Start-Process cmd \"/k C:\Users\Varun\Documents\sudo.bat cd /d %cd%\" -Verb RunAs

但下面一个不起作用,即当路径有空间时,管理命令提示符打开但它不运行脚本文件。

Start-Process cmd \"/k C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\Tools\VsDevCmd.bat cd /d %cd%\" -Verb RunAs

我尝试了以下方法,但没有成功:

Start-Process cmd \"/k \"C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\Tools\VsDevCmd.bat\" cd /d %cd%\" -Verb RunAs

和:

Start-Process cmd \"/k 'C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\Tools\VsDevCmd.bat' cd /d %cd%\" -Verb RunAs

【问题讨论】:

  • 把当前目录改成当前目录背后的思路是什么?
  • 假设我在路径 c:\temp 并且它不是管理员。我想要一个包含上述行的脚本,因此我将运行该脚本(环境变量),它将在同一路径打开一个 Visual Studio Admin 命令提示符。我已经能够在没有 VS 命令提示符的情况下实现上述目标。

标签: windows powershell batch-file cmd path


【解决方案1】:

使用额外的引号。像这样:

Start-Process cmd \"/k ""C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\Tools\VsDevCmd.bat"" cd /d %cd%\" -Verb RunAs

【讨论】:

  • 还有一件事。这会将当前目录更改为 Visual Studio 之一。您认为可以返回到我们编写命令的同一位置吗?
  • 我相信你可以为当前路径声明变量,然后用它来改变你的位置。
  • @VVV:我通常首先使用Push-Location $PSScriptRootPush-Location .来“临时保存”该位置,并在脚本末尾使用Pop-Location:D
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-02-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-07-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多