PowerShell脚本错误:字符串缺少终结符:

时间:2017-05-04 07:02:08

标签: powershell azure azure-storage azure-storage-blobs azure-powershell

令人难以置信的简单PowerShell脚本......

#Server side storage copy

$SourceStorageAccount = "myStorageAccount"
$SourceStorageKey = "myKey"

$SourceStorageContext = New-AzureStorageContext –StorageAccountName $SourceStorageAccount -StorageAccountKey $SourceStorageKey

失败并显示错误

  

在E:\ DeploymentScripts \ Storage \ Test.ps1:6 char:51   + ... geContext - StorageAccountName $ SourceStorageAccount -StorageAccount ...   + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~字符串   缺少终结者:“。       + CategoryInfo:ParserError:(:) [],ParseException       + FullyQualifiedErrorId:TerminatorExpectedAtEndOfString

最奇怪的部分是,如果我将ps1文件的内容复制并粘贴到PowerShell命令行中,它可以正常工作!发生了什么事?

显然我已经删除了我的存储容器名称和密钥,您需要分配自己的Azure存储帐户名和api密钥来复制它。

编辑:在Notepad ++中编辑的脚本的屏幕截图,其中所有字符都可见......

A screen shot of the script edited in Notepad++ with all characters visible

2 个答案:

答案 0 :(得分:4)

与此question类似。

从Web复制cmdlet时,可能会有一些特殊字符。我建议您可以将cmdlet复制到记事本,然后复制到PowerShell。

在终端中使用cat filename.ps1是有帮助的,你可以看到哪些字符是坏的,在编辑器中不明显。

答案 1 :(得分:1)

因此,部分代码会从具有非标准短划线字符的网站中复制和粘贴。当您使用powershell命令行中的cat命令列出文件

时,我发现更容易看到字符

以下是powershell中列出的内容截图: - enter image description here