右键单击“运行代码”,并在用户设置的终端上运行时,出现这些错误。
At line:1 char:63 + ... "c:\Users\Josh\Documents\Programming\Learning to Program\" && g++ Exe ... + ~~ The token '&&' is not a valid statement separator in this version. At line:1 char:99 + ... \Learning to Program\" && g++ Exercise36.cpp -o Exercise36 && "c:\Use ... + ~~ The token '&&' is not a valid statement separator in this version. At line:1 char:102 + ... ercise36 && "c:\Users\Josh\Documents\Programming\Learning to Program\ ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Expressions are only allowed as the first element of a pipeline. At line:1 char:160 + ... "c:\Users\Josh\Documents\Programming\Learning to Program\"Exercise36 + ~~~~~~~~~~ Unexpected token 'Exercise36' in expression or statement. + CategoryInfo : ParserError: (:) [], ParentContainsErrorRecordException + FullyQualifiedErrorId : InvalidEndOfLine
直到今天,我一直在编译,并且做了一些谷歌搜索,并开始在终端中键入自己的命令,而不仅仅是运行代码。
我开始用&&
替换-and
,并遇到了另一个问题。这就是现在的命令。
"c:\Users\Josh\Documents\Programming\Learning to Program\" -and g++ Exercise36.cpp -o Exercise36 -and "c:\Users\Josh\Documents\Programming\Learning to Program\"Exercise36
这是我得到的错误。
Set-Location : Parameter cannot be processed because the parameter name 'o' is ambiguous. Possible matches include: -OutVariable -OutBuffer. At line:1 char:87 + ... \Programming\Learning to Program\" -and g++ Exercise36.cpp -o Exercis ... + ~~ + CategoryInfo : InvalidArgument: (:) [Set-Location], ParameterBindingException + FullyQualifiedErrorId : AmbiguousParameter,Microsoft.PowerShell.Commands.SetLocationCommand
我正在使用GNU开源编译器,这是我遇到的第一个问题,因为我意识到在编译之前必须先保存。我正在运行一个简单的字符串,该字符串将从C ++ Primer程序从终端读取的字符串将所有字符更改为X。任何帮助将不胜感激。
答案 0 :(得分:2)
好的,问题在于VS Code的默认终端为 Windows Powershell 因此,您必须将默认终端更改为命令提示符
然后这些命令将是可执行的
答案 1 :(得分:1)
我遇到了同样的问题,我相信这是由新的VS代码1.35版本引起的。 我尝试降级到1.34,然后重新编译并运行c ++。
旧版本似乎使用不同的命令运行代码:
“ cd $ dir; if($?){g ++ $ fileName -o $ fileNameWithoutExt}; if($?){。\\ $ fileNameWithoutExt}”
在您的情况下,它看起来像:
cd“ c:\ Users \ Josh \ Documents \ Programming \ Learning to Program \”;如果($?){g ++ Exercise36.cpp -o Exercise36};如果($?){。\ Exercise36}
对我来说,使用此命令也可以在新的VS版本中编译和运行作品。
答案 2 :(得分:1)
代替 && 使用 |它适用于任何语言
答案 3 :(得分:0)
只猜测您可能需要什么:
# change to the directory, where your source code resides
Set-Location "c:\Users\Josh\Documents\Programming\Learning to Program\"
# Invoke compiler via the call operator = &
& g++ Exercise36.cpp -o Exercise36
# change to the directory, where your binary resides
Set-Location "c:\Users\Josh\Documents\Programming\Learning to Program\Exercise36"
如果用;
将它们分开,则可以执行以下三个命令:
Set-Location "c:\Users\Josh\Documents\Programming\Learning to Program\"; & g++ Exercise36.cpp -o Exercise36; Set-Location "c:\Users\Josh\Documents\Programming\Learning to Program\Exercise36"
如果要检查命令的结果,可以使用$?
variable。
答案 4 :(得分:0)
按照this article的步骤进行操作,当我尝试在VS代码版本1.39.2的终端中运行以下命令时,遇到了此问题
npm run build && npm run start-sw
错误:
At line:1 char:15 + npm run build && npm run start-sw + ~~ The token '&&' is not a valid statement separator in this version. + CategoryInfo : ParserError: (:) [], ParentContainsErrorRecordException + FullyQualifiedErrorId : InvalidEndOfLine
分辨率是要在Node JS命令窗口中运行同一命令;
在此处添加此内容是因为它是关于stackOverflow上该错误的最高帖子,可能会在将来对某人有所帮助
答案 5 :(得分:0)
我遇到了同样的问题
PS:
C:\typescript_practice> tsc testclass.ts && node testclass.js
在线:1个字符:18个 tsc testclass.ts &&节点testclass.js ~~ 在此版本中,标记“ &&”不是有效的语句分隔符。 + CategoryInfo:ParserError:(:) [],ParentContainsErrorRecordException + FullyQualifiedErrorId:InvalidEndOfLine
PS C:\ typescript_practice> tsc testclass.ts |节点testclass.js 桑伽美什·瓦斯特拉德(Sangamesh Vastrad)
与以下人员合作
使用|“代替最新的&&
答案 6 :(得分:0)
使用最新更新的VScode终端也遇到了同样的问题, 与CMD进行了相同的尝试,效果很好。 因此,尝试在其他Shell或cmd而不是VSCode终端中运行命令。