-1

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

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

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

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

有没有更好的方法来管理这个?我们不想安装 AzCopy 之类的工具,但使用 Powershell 是可行的。

4

2 回答 2

0

根据您的描述,我建议您可以通过以下方式进行操作:

1.在PowerShell中调用Azcopy。

您可以先安装 Azcopy,您可以从链接下载最新版本。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 脚本,您可以使用此链接。用于 ASM 模式的脚本,您应该更改一些命令。

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

于 2017-06-01T01:48:47.767 回答
0

使用以下方法解决了该问题:

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