You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用New-AzDataLakeGen2Item上传本地目录下的多个文件

New-AzDataLakeGen2Item的-Source参数仅支持传入单个本地文件的完整路径,不支持通配符也不支持直接传入本地目录路径,因此你之前的两种写法都会报错。要实现批量上传,可通过PowerShell遍历本地文件后循环调用该接口实现,具体方案如下:

示例1:仅上传指定目录下的所有文件(不包含子目录)

# 配置参数
$localFolderPath = "C:\temp\"
$fileSystemName = "testfilesystem"
$remoteBasePath = "dir1/dir2/" # ADLS Gen2 目标根路径

# 遍历本地文件逐个上传
Get-ChildItem -Path $localFolderPath -File | ForEach-Object {
    $remoteFilePath = $remoteBasePath + $_.Name
    New-AzDataLakeGen2Item -FileSystem $fileSystemName -Path $remoteFilePath -Source $_.FullName -Force
}

示例2:上传目录全量内容(保留子目录层级结构)

如果需要同时上传子目录内的文件,并且在ADLS Gen2中保留和本地一致的目录结构,使用以下代码:

# 配置参数
$localRootPath = "C:\temp\"
$fileSystemName = "testfilesystem"
$remoteRootPath = "dir1/dir2/"

# 递归遍历所有文件
Get-ChildItem -Path $localRootPath -File -Recurse | ForEach-Object {
    # 计算相对路径,适配ADLS的正斜杠路径格式
    $relativePath = $_.FullName.Substring($localRootPath.Length).Replace('\','/')
    $remoteFullPath = $remoteRootPath + $relativePath
    New-AzDataLakeGen2Item -FileSystem $fileSystemName -Path $remoteFullPath -Source $_.FullName -Force
}

补充说明

  • 代码中的-Force参数会自动覆盖ADLS Gen2中已存在的同名文件,不需要覆盖可删除该参数
  • 如需异步并行上传,可在New-AzDataLakeGen2Item后添加-AsJob参数,所有上传任务会在后台执行
  • 方案完全基于New-AzDataLakeGen2Item原生接口实现,不需要额外引入其他组件

内容的提问来源于stack exchange,提问作者Dreamer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 03:54:01