【问题标题】:Forward slashes instead of back in filepath正斜杠而不是文件路径中的后退
【发布时间】:2019-07-05 12:34:59
【问题描述】:

如何在 Visual Studio Code 构建任务参数中将反斜杠替换为正斜杠。

我尝试在我的 Bash 命令中使用反斜杠,但控制台只是删除了斜杠。

"command": "xxxxxxxx.exe",
"type": "shell",
"args": [
    "--dir=${workspaceFolder}",
]

在控制台中它似乎是:

> Executing task: xxxxxxxx.exe --dir=C:UsersUserDesktopProject

但我希望它是:

> Executing task: xxxxxxxx.exe --dir=C:/Users/User/Desktop/Project/

【问题讨论】:

  • 什么是 workspaceFolder 变量?是由 vscode 管理的吗?
  • 是的,它由 VSCode 管理。这是一个预定义变量,请阅读this article
  • 程序无法解析相对路径,所以必须使用完整路径。

标签: json bash command-line visual-studio-code


【解决方案1】:

使用 bash 内置的东西 ${variable//string/substitution}:

"command": "xxxxxxxx.exe",
"type": "shell",
"args": [
    "--dir=${workspaceFolder//\\/\/}",
]

【讨论】:

    【解决方案2】:

    对我而言,只需将默认 shell 切换到 cmd 即可。我在vscode 中安装了git-bash 作为我的默认shell。当我尝试调试 ts 文件时,shell 抱怨类似你的情况,路径是一个没有任何斜杠或反斜杠的字符串。

    这是我的 launch.json。

    {
        {
          "type": "node",
          "request": "launch",
          "name": "Debug Current",
          "preLaunchTask": "tsc: build - tsconfig.json",
          "skipFiles": ["<node_internals>/**"],
          "program": "${file}",
          "outFiles": ["${workspaceFolder}/dist/*.js"]
        }
      ]
    }
    

    【讨论】:

      【解决方案3】:

      你把反斜杠加倍了吗?它们是一个引用字符,因此您可能必须使用一个来引用下一个。

      $: echo "C:\Users\Public" | sed 's,\\,/,g'
      C:/Users/Public
      

      使用参数扩展而不产生sed -

      $: x="C:\Users\Public"
      $: echo "${x//\\/\/}"
      C:/Users/Public
      

      【讨论】:

      • 谢谢,但我无法让它工作。它运行为:&gt; Executing task: xxxxxxxx.exe --dir=${workspaceFolder//\//},并且${workspaceFolder//\//} 不会被C:/Users/User 替换。
      • 不是${workspaceFolder//\//} - c.f. // 说“在整个字符串中替换它”,\/ 说替换“字面上的正斜杠”,然后 / 到“with:”......然后你不给它一个替换模式.使用${workspaceFolder//\\/\/}" so the \` 意味着字面意思是一个反斜杠”,那么/ 就是“with:”一个\/,“字面意思是一个正斜杠。
      • 这是“倾斜牙签综合症”,这就是我在sed 模式中使用逗号的原因。 :(
      • 反斜杠引用下一个字符,我们用它来引用我们想要替换的反斜杠,并引用我们想要作为替换模式的正斜杠。
      • 哇,这确实有效。我不敢相信我错过了。
      猜你喜欢
      • 2020-11-12
      • 1970-01-01
      • 2017-03-16
      • 1970-01-01
      • 2016-11-20
      • 2014-04-12
      • 2013-07-23
      • 1970-01-01
      • 2011-11-25
      相关资源
      最近更新 更多