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

Windows终端bat脚本实现Linux HPC断点续传下载并优化检查效率

修复后的Windows批量下载脚本(download.bat)
@echo off
setlocal enabledelayedexpansion

:: 配置参数
set "HPC_USER=me"
set "HPC_HOST=172.16.78.132"
set "HPC_ROOT=/storage/myLab/sharedata/LDSC_resource"
set "LOCAL_ROOT=F:\GeneResource"

:: 获取远程HPC目录下所有文件的绝对路径(递归)
for /f "delims=" %%f in ('ssh !HPC_USER!@!HPC_HOST! "find !HPC_ROOT! -type f"') do (
    :: 替换远程路径前缀为本地路径,并转换路径分隔符
    set "remote_path=%%f"
    set "local_path=!remote_path:/storage/myLab/sharedata/=!LOCAL_ROOT!\!"
    set "local_path=!local_path:/=\!"

    :: 检查文件是否已存在本地
    if exist "!local_path!" (
        echo File "%%~nxf" already exists in F:/GeneResource
    ) else (
        :: 创建本地父目录(如果不存在)
        md "%%~dplocal_path" 2>nul
        :: 执行SCP下载
        echo Downloading "%%~nxf"...
        scp !HPC_USER!@!HPC_HOST!:"!remote_path!" "!local_path!"
        if !errorlevel! equ 0 (
            echo Successfully downloaded "%%~nxf" to !local_path!
        ) else (
            echo Failed to download "%%~nxf"
        )
    )
)

echo All download tasks processed.
pause
endlocal

关键改进说明

  • 修复远程文件遍历逻辑:原脚本错误地将Linux HPC目录当作Windows本地共享目录遍历,实际通过ssh + find命令获取远程集群的文件列表,这是跨平台批量处理的核心修正。
  • 精准路径映射:严格按照需求将远程路径前缀/storage/myLab/sharedata/替换为本地F:\GeneResource\,同时自动转换Linux与Windows的路径分隔符,确保本地路径匹配正确。
  • 可靠性增强:
    • 自动创建本地子目录,避免因目录不存在导致下载失败;
    • 检查scp命令的退出码,准确反馈下载成功/失败状态,彻底解决原脚本“未下载却提示完成”的问题;
    • 开启延迟扩展,确保循环内变量替换正常工作。
  • 符合需求的提示格式:文件已存在时输出指定格式的提示信息。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 09:30:33