Service Fabric脚本换行后运行报错,寻求保持代码整洁的解决方案
Service Fabric脚本换行后运行报错,寻求保持代码整洁的解决方案
嗨,我来帮你搞定这个问题!你遇到的报错其实是因为误用了管道符|——PowerShell会把管道符后面的-ApplicationParameter当成一个独立的命令来执行,但这根本不是一个合法的命令,所以才会报错。
要让代码既整洁易编辑又能正常运行,其实有两种很实用的换行方式:
方法一:用PowerShell续行符(反引号`)
在每一行命令的末尾加上反引号(注意反引号后面不能有空格,否则续行失效),就能把长命令拆成多行,像这样:
# Installs the application New-ServiceFabricApplication ` -ApplicationName $ApplicationName ` -ApplicationTypeName $ApplicationType ` -ApplicationTypeVersion $ApplicationVersion ` -ApplicationParameter @{ Logic_ASPNETCORE_ENVIRONMENT = "LOCAL"; Logic_InstanceCount = "1"; Logic_ServiceUser = "switchcommerce\localdevgmsa"; Data_ASPNETCORE_ENVIRONMENT = "LOCAL"; Data_PartitionCount = "1"; Data_MinReplicaSetSize = "3"; Data_TargetReplicaSetSize = "3"; Data_ServiceUser = "switchcommerce\localdevgmsa"; }
方法二:利用PowerShell自动续行特性
PowerShell很聪明,当它识别到你还在输入命令的参数(比如下一行开头是-开头的参数名,或者哈希表@{还没闭合),会自动帮你续行,完全不需要加续行符,写起来更清爽:
# Installs the application New-ServiceFabricApplication -ApplicationName $ApplicationName -ApplicationTypeName $ApplicationType -ApplicationTypeVersion $ApplicationVersion -ApplicationParameter @{ Logic_ASPNETCORE_ENVIRONMENT = "LOCAL"; Logic_InstanceCount = "1"; Logic_ServiceUser = "switchcommerce\localdevgmsa"; Data_ASPNETCORE_ENVIRONMENT = "LOCAL"; Data_PartitionCount = "1"; Data_MinReplicaSetSize = "3"; Data_TargetReplicaSetSize = "3"; Data_ServiceUser = "switchcommerce\localdevgmsa"; }
核心要点就是:别用管道符|来拆分命令参数,管道符是用来在不同命令之间传递输出结果的,不是用来换行拆分参数的!按照上面的方法修改后,你的代码既能保持整洁的格式,每次部署编辑起来也方便,还能正常运行。
备注:内容来源于stack exchange,提问作者Zero596
相关产品推荐
相关产品推荐

