Oll*_*lli 4 task visual-studio-code
我正在尝试创建一个运行带有一些参数的命令的 VSCode 任务。
"tasks": [
{
"label": "Execute in Max",
"type": "shell",
"command": "cd\\; C:\\MXSPyCOM.exe",
"args": [
"-f",
"'${file}'"
],
"problemMatcher": []
}
]
Run Code Online (Sandbox Code Playgroud)
从那我得到错误:
& : 无法加载模块“cd”。有关更多信息,请运行“Import-Module cd”。在行:1 字符:3 + & 'cd\; C:\MXSPyCOM.exe' -f 'c:\Users\ ... + ~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : ObjectNotFound: (cd\; C:\MXSPyCOM.exe:String) [], CommandNotFoundException +fullyQualifiedErrorId : couldNotAutoLoadModule
我相当肯定问题是它试图执行'cd\; C:\MXSPyCOM.exe' -f 'c:\Users\的命令:主命令块出于某种原因用单引号括起来,这使得 shell 认为它是一个命令,当它是多个命令时。
这过去没有发生过,几个月前我上次使用它时,这个确切的命令工作得很好。知道有什么问题吗?
是的,直到 1.21.0 vscode 在 args 中有空格时才发出警告,最新版本在命令和 args 中有空格时用单引号包装。只需打破命令使其中没有空格,要么
"command": "cd\\;C:\\MXSPyCOM.exe",
Run Code Online (Sandbox Code Playgroud)
或者
"command": "cd\\;",
"args": [
"C:\\MXSPyCOM.exe",
...
Run Code Online (Sandbox Code Playgroud)
当没有这样的选项(例如将命令传递给 ssh 会话)时,我要做的是:
"command": "ssh",
"args": [
"host_name",
"bash",
"-c",
"'\"",
"cd /some_dir;",
...
"\"'"
],
Run Code Online (Sandbox Code Playgroud)
快速而肮脏的解决方法是根本不使用该args字段,并在command.
另一种解决方案是编写自己的脚本,然后从 tasks.json 中调用它们
| 归档时间: |
|
| 查看次数: |
3345 次 |
| 最近记录: |