将文件从 Azure 存储移动到本地目录

Move files from Azure storage to a local directory

我想移动 Azure 文件共享中的所有文件。我现在可以通过以下方式使用:

  1. 使用"net"命令连接到网络驱动器并为其分配盘符
  2. 然后有一个 bat 文件使用 "move" 命令如 move g:\files\* c:\files 然后移动每小时运行的文件以检查是否有文件并使用 windows 任务调度程序移动它们.

但我不想用这种方式因为:

  1. 如果机器需要重启,驱动器将断开连接,因此该过程不会保持自动化,因为有人将不得不再次安装驱动器
  2. "move" 命令不移动文件夹,它只移动文件。

是否有更好的管理方法?我们不想安装像 AzCopy 这样的工具,但是使用 Powershell 是可行的。

根据您的描述,我建议您可以按照以下方式进行:

1.Call PowerShell 中的 Azcopy。

您可以先安装Azcopy,您可以从link下载最新版本。 Azcopy 支持将目录上传到 Azure 文件共享。您可以使用以下命令。

AzCopy /Source:C:\myfolder /Dest:https://myaccount.file.core.windows.net/myfileshare/ /DestKey:key /S

然后你可以写一个bat脚本来调用Azcopy,默认Azure安装目录是C:\Program Files (x86)\Microsoft SDKs\Azure\AzCopy.

cd "C:\Program Files (x86)\Microsoft SDKs\Azure\AzCopy"
&.\AzCopy.exe /Source:C:\myfolder /Dest:https://myaccount.file.core.windows.net/myfileshare/ /DestKey:key /S
  1. 使用 PowerShell 脚本,你可以使用这个 link。用于ASM模式的脚本,你应该改变一些命令。

根据我的经验,使用 Azcopy 更容易、更简单。

问题已通过以下方法解决:

  1. 删除任何现有的映射驱动器到我们使用 net use <drive_letter> /delete 命令的驱动器号。这样做是为了确保自上次脚本 运行
  2. 以来驱动器已分离
  3. 使用 net use 命令再次映射驱动器
  4. 使用robocopy
  5. 复制所有文件
  6. 之后使用del命令删除所有文件
  7. 现在使用 net use <drive_letter> /delete 命令断开驱动器