﻿# 從命令提示字元中開啟 Visual Studio Code 如何避免顯示惱人的偵錯訊息

由於我的 Visual Studio Code 大部分時候都是在命令提示字元下啟動，所以只要用 **code .** 就可以快速啟動 Visual Studio Code 並自動開啟目前所在資料夾。不過不知道從哪個版本開始，我在啟動 Visual Studio Code 之後，卻開始在原本所在的命令提示字元視窗中出現一堆惱人的偵錯訊息，本篇文章試圖解析這個現象，並提出解決辦法。

你可以從下圖得知，當我在**命令提示字元**下啟動 Visual Studio Code 之後，雖然執行命令的所有權已經回到了**命令提示字元**，但是卻出現了一堆奇怪的偵錯訊息，這將會干擾我原本在**命令提示字元**的作業，而且你在操作 Visual Studio Code 的同時，這個**命令提示字元視窗**還會不斷的產生訊息，這個現象非常困擾著我。

[![image\_thumb\[3\]](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/5b79364731ca79919f22-image_thumb_3__thumb.png "image_thumb[3]")](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/23ed563e4a96b24c7e62-image_thumb_3.png)

這個時候你如果你在**命令提示字元視窗**中按下 **Ctrl+C** 的話，竟然剛剛開啟的 Visual Studio Code 會突然關閉，就好像 APP 閃退那種感覺，所有編輯中的檔案也將不會存檔，所有在 Visual Studio Code 中做到一半的工作就這樣硬生生被中斷掉。

[![image\[14\]](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/c2be38354e5cfa450841-image_14__thumb.png "image[14]")](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/422a079c969c15b41468-image_14.png)

幾經研究之後，我終於發現原來是執行檔路徑的問題，你如果有跟我一樣的情況，你可以試著輸入 **where code** 命令，查詢 Visual Studio Code 執行檔的實際路徑在哪！

[![image\[19\]](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/a896e2b4f3cfd4b77f84-image_19__thumb.png "image[19]")](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/a9fa0a1b985e9abbd934-image_19.png)

看著這張圖，不禁讓人納悶，為什麼要執行 **code** 命令，會有 4 個執行檔與 2 個不同的資料夾呢？而且第一個順位是 **C:\\Program Files (x86)\\Microsoft VS Code\\Code.exe**，執行這支執行檔看起來沒甚麼問題啊，以前都沒有這種狀況，怎麼最近有了呢？

接著我試著用另一個 **C:\\Program Files (x86)\\Microsoft VS Code\\bin\\code.cmd** 來執行 Visual Studio Code 程式，結果竟然問題就消失了。這才發現，原來我的 PATH 環境變數中，竟然出現了兩個不同的 Visual Studio Code 執行檔路徑，如下圖示：

[![image\[24\]](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/6de0a2d6caeb1f875d75-image_24__thumb.png "image[24]")](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/b8ce1ae0449c143750c3-image_24.png)

你只要把 **C:\\Program Files (x86)\\Microsoft VS Code** 這個路徑從 PATH 環境變數中刪除，只要保留 **C:\\Program Files (x86)\\Microsoft VS Code\\bin** 路徑即可，以後就可以順利的從命令提示字元視窗啟動 Visual Studio Code 了！ ^\_^

我最後看了一下 code.cmd 這個批次檔的內容，發現他會自動去執行 **C:\\Program Files (x86)\\Microsoft VS Code\\Code.exe** 執行檔，而且預設執行 Atom Shell ([Electron](http://electron.atom.io/)) 的時候會透過 Node.js 來啟動他，而 Atom Shell 在執行的過程中會自動輸出一些偵錯資訊，所以才會導致這次事件。

[![image\[29\]](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/dee26db530cfe9bea574-image_29__thumb.png "image[29]")](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/d09fbcb7619fc7f0e570-image_29.png)

由於透過 code.cmd 批次檔利用 [CALL](http://ss64.com/nt/call.html) 呼叫了 Code.exe 程式，所以這個從批次檔中被執行的 Code.exe 是執行在一個全新的 Context 底下，因此 Visual Studio Code 在執行的時候的任何輸出，都不會影響原本命令提示字元下的任何內容，也就做出了基本隔離，所以現在我們的命令提示字元視窗終於乾淨多囉！ ^\_\_^

**相關連結**

-   [Strange "Could Not Start Dumper" Error · Issue #2976 · Microsoft/vscode](https://github.com/Microsoft/vscode/issues/2976)
-   [Call | Windows CMD | SS64.com](http://ss64.com/nt/call.html)
