批处理如何从文本文件逐行解析设置未知数量变量并批量创建符号链接
批处理批量读取文本路径创建符号链接的解决方案
你之前写的将路径存入dest[索引]数组的逻辑是正确的,只需要配合延迟扩展遍历数组,套用原有业务逻辑即可实现需求,以下是可直接运行的完整脚本:
@echo off setlocal enabledelayedexpansion :: 初始化C:\Volumes目录,不存在则创建 if not exist "C:\Volumes" MD "C:\Volumes" :: 读取mounts.txt所有路径存入数组 set counter=0 for /f "tokens=* delims=" %%a In (mounts.txt) do ( set /a counter+=1 set "dest[!counter!]=%%a" ) :: 遍历数组批量执行操作 for /l %%n in (1,1,!counter!) do ( set "current_path=!dest[%%n]!" :: 挂载网络共享路径 net use "!current_path!" :: 提取路径最后一段作为符号链接文件夹名 for %%i in ("!current_path!") do set "fold=%%~ni" :: 避免重复创建报错,已有链接则跳过 if not exist "C:\Volumes\!fold!" ( mklink /d "C:\Volumes\!fold!" "!current_path!" echo 已创建符号链接:C:\Volumes\!fold! >> !current_path! ) else ( echo 符号链接已存在,跳过:C:\Volumes\!fold! ) ) pause endlocal
关键说明
- 脚本必须以管理员权限运行,Windows系统创建符号链接需要管理员权限
- 同目录下的
mounts.txt每行存储一条共享路径,支持带空格的路径,后续新增路径直接写入文件即可,无需修改脚本 - 动态数组变量的正确调用格式为
!变量名[索引]!,你之前调用失败的核心原因是没有正确使用延迟扩展语法拼接动态变量名
内容的提问来源于stack exchange,提问作者roar
相关产品推荐
相关产品推荐

