首页 > 解决方案 > AzCopy 未知 /source 命令

问题描述

我目前有以下脚本:

$azPath = "C:\temp"
Set-Location $azPath

$StorageAccountName = "#"
$StorageAccountKey = "#"
$ContainerName = "sqlbackups"

$SourceFolder = "C:\temp"

$DestURL = "https://$StorageAccountName.blob.core.windows.net/$ContainerName"
$Result = .\AzCopy.exe /source:$SourceFolder /dest:$DestURL /BlobType:block /destkey:$StorageAccountKey /Y
$Result

我收到以下错误:

PS C:\temp> .\load-backups2.ps1
Error: unknown command "/source:C:\\temp" for "azcopy"
Run 'azcopy --help' for usage.

unknown command "/source:C:\\temp" for "azcopy"

我想知道是否有人可以在这里看到我做错了什么>

标签: azurepowershellazure-powershell

解决方案


我可以重现您的问题,我想您的问题azcopy.exe位于C:\temp文件夹中。要解决此问题,只需删除.\.$Result = .\AzCopy.exe /source:$SourceFolder /dest:$DestURL /BlobType:block /destkey:$StorageAccountKey /Y

应该是$Result = AzCopy.exe /source:$SourceFolder /dest:$DestURL /BlobType:block /destkey:$StorageAccountKey /Y,但它也会上传azcopy.exe,所以我建议您将 移动azcopy.exe到另一个文件夹,例如C:\test.

然后脚本将如下所示,它在我这边运行良好。

$azPath = "C:\test"
Set-Location $azPath

$StorageAccountName = "#"
$StorageAccountKey = "#"
$ContainerName = "sqlbackups"

$SourceFolder = "C:\temp"

$DestURL = "https://$StorageAccountName.blob.core.windows.net/$ContainerName"
$Result = AzCopy.exe /source:$SourceFolder /dest:$DestURL /BlobType:block /destkey:$StorageAccountKey /Y

在此处输入图像描述

更新:

在我之前的回复中,我AzCopy.exe是直接使用的,但实际上我已经AzCopy v8.1在我的PC中安装了它,并且我已经将它设置为系统环境变量。所以结果是v8.1. 我想你正在使用AzCopy v10,如果我使用 AzCopy v10,我可以重现你的问题,你可能需要尝试AzCopy v8.1,它有效。您可以按照以下步骤操作。

1.下载AzCopy v8.1,安装,默认路径为C:\Program Files (x86)\Microsoft SDKs\Azure\AzCopy\,我使用默认路径。

2.用 设置系统环境变量PathC:\Program Files (x86)\Microsoft SDKs\Azure\AzCopy\保存。详情见此链接

在此处输入图像描述

3.然后打开一个新的powershell会话,尝试命令。不需要Set-Location,因为我们已经设置了环境变量。

$StorageAccountName = "#"
$StorageAccountKey = "#"
$ContainerName = "sqlbackups"

$SourceFolder = "C:\temp"

$DestURL = "https://$StorageAccountName.blob.core.windows.net/$ContainerName"
$Result = AzCopy.exe /source:$SourceFolder /dest:$DestURL /BlobType:block /destkey:$StorageAccountKey /Y

推荐阅读