调用 TF.exe 的 powershell 脚本中的表达式或语句中出现意外的令牌“工作区”
Posted
技术标签:
【中文标题】调用 TF.exe 的 powershell 脚本中的表达式或语句中出现意外的令牌“工作区”【英文标题】:Unexpected token 'workspace' in expression or statment in powershell script calling TF.exe 【发布时间】:2020-01-06 12:23:34 【问题描述】:我正在编写一个 PowerShell(5.1 版)脚本以从 TFS 获取特定项目的最新源代码,但出现错误:
"Unexpected token 'workspace' in expression or statement."
我已在此处搜索并搜索了该错误,但找不到此错误的具体参考。我已经尝试了多种语法组合,并使用单引号和双引号等,但没有任何成功。我不明白这是什么问题...
这是代码:
$TFdir="C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer"
$TF="'$TFdir\tf.exe'"
$WorkSpaceName="C:\temp\NewTestBuildProject"
$expr="$TF workspace /new $WorkSpaceName /noprompt /collection:http://(servername):8080/tfs/defaultcollection"
$expr
这就是上面一行的计算结果:
'C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer\tf.exe' workspace /new C:\temp\NewTestBuildProject /noprompt /collection:http://(servername):8080/tfs/defaultcollection
这是执行上述表达式的行,是产生错误的地方:
Invoke-Expression $expr
这是它产生的错误:
Invoke-Expression : At line:1 char:143
+ ... ions\Microsoft\TeamFoundation\Team Explorer\tf.exe' workspace /new
C: ...
+ ~~~~~~~~~
Unexpected token 'workspace' in expression or statement.
At C:\Users\PF12764\Desktop\PS\PublishWithPowerShell.ps1:42 char:1
+ Invoke-Expression $expr
+ ~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : ParserError: (:) [Invoke-Expression],
ParseException
+ FullyQualifiedErrorId :
UnexpectedToken,Microsoft.PowerShell.Commands.InvokeExpressionCommand
【问题讨论】:
我认为您需要查看&
调用运算符或使用 Start-Process
cmdlet,以便您可以优雅地将参数传递给 exe。
Lee_Dailey,你是对的!此命令有效: & "C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer\tf.exe" 工作区 /new mytemp /noprompt /collection:http ://(服务器):8080/tfs/defaultcollection
酷!很高兴知道你成功了……[grin]
@PatrickLu-MSFT,有什么方法可以将 Lee_Dailey 的评论标记为回复并给予他好评,因为他的回答确实是正确的?
@DevilDog - 不需要任何信用,因为一旦你有时间考虑答案就很清楚了。谢谢你! [咧嘴]
【参考方案1】:
Lee_Dailey,你是对的!此命令有效:
& "C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer\tf.exe" workspace /new mytemp /noprompt /collection:http://(server):8080/tfs/defaultcollection
【讨论】:
以上是关于调用 TF.exe 的 powershell 脚本中的表达式或语句中出现意外的令牌“工作区”的主要内容,如果未能解决你的问题,请参考以下文章