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

如何解决长文件名导致CMD/PowerShell无法批量复制文件的问题?

解决长文件名批量转移问题

针对你的场景,这里有几个可靠的解决方案,都能完美处理长文件名问题:

方法一:PowerShell 脚本(灵活易定制)

PowerShell原生支持长路径,逻辑清晰,适合处理批量文件操作:

  1. 准备好你的文件清单file_list.txt,确保每行是Dir1中的文件名(可带相对/绝对路径,也可只写文件名)
  2. 创建一个名为move_files.ps1的脚本,填入以下内容(替换实际路径):
# 替换成你的源目录和目标目录路径
$sourceDir = "C:\Your\Path\Dir1"
$targetDir = "C:\Your\Path\Dir2"
# 替换成你的文件清单路径
$fileList = Get-Content "C:\Your\Path\file_list.txt"

# 自动创建目标目录(如果不存在)
if (-not (Test-Path $targetDir)) {
    New-Item -ItemType Directory -Path $targetDir | Out-Null
}

# 遍历清单转移文件
foreach ($file in $fileList) {
    $sourcePath = Join-Path -Path $sourceDir -ChildPath $file
    if (Test-Path $sourcePath) {
        Move-Item -Path $sourcePath -Destination $targetDir -Force
        Write-Host "已转移: $file"
    } else {
        Write-Warning "未找到文件: $file"
    }
}
  1. 运行脚本:右键点击脚本文件选择「用PowerShell运行」,或者在PowerShell窗口中输入.\move_files.ps1。如果遇到执行策略限制,先执行Set-ExecutionPolicy RemoteSigned(临时允许本地脚本运行)。

方法二:Robocopy 命令(高效稳定)

Robocopy是Windows自带的高级文件复制工具,天生支持长路径,处理大量文件效率极高:

直接在命令提示符(CMD)或PowerShell中执行以下命令(替换实际路径):

robocopy "C:\Your\Path\Dir1" "C:\Your\Path\Dir2" /XF * /IF @C:\Your\Path\file_list.txt /MOV

参数说明:

  • /XF *:排除源目录中所有文件,只保留清单指定的文件
  • /IF @file_list.txt:指定要包含的文件清单,@后面是清单文件的完整路径
  • /MOV:移动文件(复制完成后删除源文件),如果只需要复制而不删除源文件,去掉/MOV即可

注意:文件清单file_list.txt中每行只需要写文件名(不需要带路径),必须和Dir1中的文件名完全匹配。

可选:启用系统全局长路径支持

如果上述方法仍遇到路径过长问题,可以开启Windows的长路径支持(适用于Windows 10 1607版本及以上、Windows 11):

  1. 按下Win+R,输入gpedit.msc打开组策略编辑器
  2. 导航到:计算机配置 > 管理模板 > 系统 > 文件系统
  3. 找到「启用 Win32 长路径」选项,设置为「已启用」
  4. 重启电脑后生效

内容的提问来源于stack exchange,提问作者Trivino Y Garcia Abelardo

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.02 02:04:50