将文件从 Azure 存储移动到本地目录
Move files from Azure storage to a local directory
我想移动 Azure 文件共享中的所有文件。我现在可以通过以下方式使用:
- 使用"net"命令连接到网络驱动器并为其分配盘符
- 然后有一个 bat 文件使用 "move" 命令如
move g:\files\* c:\files
然后移动每小时运行的文件以检查是否有文件并使用 windows 任务调度程序移动它们.
但我不想用这种方式因为:
- 如果机器需要重启,驱动器将断开连接,因此该过程不会保持自动化,因为有人将不得不再次安装驱动器
- "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
- 使用 PowerShell 脚本,你可以使用这个 link。用于ASM模式的脚本,你应该改变一些命令。
根据我的经验,使用 Azcopy 更容易、更简单。
问题已通过以下方法解决:
- 删除任何现有的映射驱动器到我们使用
net use <drive_letter> /delete
命令的驱动器号。这样做是为了确保自上次脚本 运行 以来驱动器已分离
- 使用
net use
命令再次映射驱动器
- 使用
robocopy
复制所有文件
- 之后使用
del
命令删除所有文件
- 现在使用
net use <drive_letter> /delete
命令断开驱动器
我想移动 Azure 文件共享中的所有文件。我现在可以通过以下方式使用:
- 使用"net"命令连接到网络驱动器并为其分配盘符
- 然后有一个 bat 文件使用 "move" 命令如
move g:\files\* c:\files
然后移动每小时运行的文件以检查是否有文件并使用 windows 任务调度程序移动它们.
但我不想用这种方式因为:
- 如果机器需要重启,驱动器将断开连接,因此该过程不会保持自动化,因为有人将不得不再次安装驱动器
- "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
- 使用 PowerShell 脚本,你可以使用这个 link。用于ASM模式的脚本,你应该改变一些命令。
根据我的经验,使用 Azcopy 更容易、更简单。
问题已通过以下方法解决:
- 删除任何现有的映射驱动器到我们使用
net use <drive_letter> /delete
命令的驱动器号。这样做是为了确保自上次脚本 运行 以来驱动器已分离
- 使用
net use
命令再次映射驱动器 - 使用
robocopy
复制所有文件
- 之后使用
del
命令删除所有文件 - 现在使用
net use <drive_letter> /delete
命令断开驱动器