vscode Tasks.json中的进程和Shell之间有什么区别

时间:2019-01-22 11:07:41

标签: visual-studio-code vscode-tasks

Tasks in Visual Studio Code自定义任务部分描述了任务的属性。有一个type属性定义任务的类型:

  

类型:任务的类型。对于自定义任务,可以为shellprocess。如果指定了shell,则该命令将解释为Shell命令(例如:bash,cmd或PowerShell)。如果指定了process,则该命令将被解释为要执行的过程。

我不明白他们之间有什么区别。无论我选择shell还是process,所有执行结果都相同。

那么解释为shell命令命令解释为要执行的过程的真正区别是什么?

2 个答案:

答案 0 :(得分:2)

shell命令只能在诸如DIR的{​​{1}}和cmd的{​​{1}}之类的shell中运行。因此,当您要运行Shell命令时,必须使用if设置才能正确运行它。如果您只想运行bash"type": "shell".bat之类的程序,则可以只使用.sh设置。

答案 1 :(得分:0)

好吧,最近我遇到了一个问题,最后通过将类型从“ process”更改为“ shell”来解决了这个问题,我认为这可能对您有所帮助: 我试图运行多个.cpp文件,并且在args中使用了通配符:“ $ {fileDirname} / .cpp”。当类型为process时,我无法成功运行项目,因为它总是告诉我:“ * .cpp”:没有这样的文件或目录,当我更改为“ shell”时,它运行良好。这可能是“过程”和“外壳”之间的区别之一。