【发布时间】:2020-07-09 09:48:54
【问题描述】:
我一直在尝试从多个来源创建符号链接。
我在new 目录中有一个reg.txt 文件以及sort.bat。
reg.txt :-
redcar1=123456 greencar2=345678
在名为vehicles 的目录中,子目录为“reg_numbers”,即:-123456,
在该目录中,我有一个名为keys 或key 的子目录,其中包含一个*.txt 文件。
我想将所有'reg_numbers'(解析reg.txt - 在进程中更改文件夹名称)目录符号链接到sort.bat文件所在的new目录,以及所有keys或Key 目录文件(*.txt),放到new 文件夹中的公共keys 目录中
这么说:-
D:\vehicles\123456\keys\this.txtD:\vehicles\345678\key\that.txt
符号链接
e:\new\redcar1\e:\new\greencar2\e:\new\keys\this.txte:\new\keys\that.txt
sort.bat 在新文件夹中。
@echo off
setlocal EnableDelayedExpansion
set NEWPATH=%~dp0
set OLDPATH=d:\vehicles
for /f %%d in ('dir /b %NEWPATH%\keys') do (
if not "%%d"=="not.txt" del /Q "%NEWPATH%Keys\%%d" ::clean out files
)
for /f "tokens=1,2 delims==" %%a in (reg.txt) do (
rmdir /Q "%NEWPATH%%%a" ::clean out dir
mklink /D %NEWPATH%"%%a" %OLDPATH%\"%%b"
for /f %%c in ('dir /b %OLDPATH%\%%b\keys' ) do (
mklink %NEWPATH%Keys\"%%c" %OLDPATH%\"%%b"\"%%c"
)
)
这可能是一团糟,但它几乎适用于所有东西,但我无法从 key 文件夹中获取 that.txt。
【问题讨论】:
-
如果您使用命令
sort,建议您将 sort.bat 命名为其他名称,因为它与 sort.exe 同名。也许是一个更独特的名字。
标签: for-loop batch-file directory mklink