ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

vscode run task报错

vscode run task报错 1.配置如下我在settings.json中配置了默认terminal为pwsh.exe为了保证中文不乱码还配置了chcp 65001chcp 是 Change Code Page更改代码页的缩写65001 代表 UTF-8 编码标准。‌‌[Console]::OutputEncoding [System.Text.Encoding]::UTF8;设置输出编码[Console]::InputEncoding [System.Text.Encoding]::UTF8设置输入编码1.settings.json{C_Cpp.intelliSenseEngine:disabled,terminal.integrated.profiles.windows:{PowerShell 7:{args:[-NoExit,-Command,chcp 65001 | Out-Null;,[Console]::OutputEncoding [System.Text.Encoding]::UTF8;,[Console]::InputEncoding [System.Text.Encoding]::UTF8],path:C:\\sw\\PowerShell-7.4.17\\pwsh.exe}},terminal.integrated.defaultProfile.windows:PowerShell 7}2.tasks.json{version:2.0.0,tasks:[{label:CMake: clean (mingw build),type:shell,command:cmake,args:[--build,--preset,mingwbuild,--target,clean],options:{cwd:${workspaceFolder}},problemMatcher:[]}]}2.报错内容然后我在ctrlshiftp - tasks: run task - CMake: clean (mingw build)时terminal输出错误如下* Executing task: cmake--build--presetmingwbuild--targetclean ParserError: Line|1|… nsole]::InputEncoding[System.Text.Encoding]::UTF8-Commandcmake - …|~~~~~~~~|Unexpected token-Commandinexpression or statement.3.报错原因根因不在 tasks.json 而是在 settings.json 里PowerShell 7 的启动参数被写成了 -Command导致 VS Code 任务在启动终端时被错误地当成了可执行命令参数出现了The term ‘-Command’ is not recognized…4.问题解决为了保证pwsh这个terminal中文不乱码因此不能修改settings.json。1.方法一(推荐)修改task将 “type” 从 “shell” 改为 “process”避免使用默认 shellPowerShell导致的 -Command 包装。tasks.json{version:2.0.0,tasks:[{label:CMake: clean (mingw build),type:process,command:cmake,args:[--build,--preset,mingwbuild,--target,clean],options:{cwd:${workspaceFolder}},problemMatcher:[]}]}2.方法二指定shell的启动方式在options下增加shell的启动方式启动参数规避settings.json的默认terminal的启动参数tasks.json{version:2.0.0,tasks:[{label:CMake: clean (mingw build),type:shell,command:cmake,args:[--build,--preset,mingwbuild,--target,clean],options:{cwd:${workspaceFolder},shell:{executable:C:\\sw\\PowerShell-7.4.17\\pwsh.exe,args:[-NoLogo,-NoProfile]}},problemMatcher:[]}]}
返回列表