Chezorezka,
Код:
@Echo Off
cls
Set "BoxIn=Z:\Box_Arc"
Set "Mask=*.pdf"
Set "BoxOut=Z:\Lnk.pdf"
rem If Not "%BoxOut:~3,1%"=="" 2>NUL Rd /S /Q "%BoxOut%"
Call :Folder "%BoxIn%" "%Mask%" "%BoxOut%"
FOR /F "usebackq delims=" %%i IN (`2^>nul Dir "%BoxIn%\" /S /B /A:D`) DO Call :Folder "%%i" "%Mask%" "%BoxOut%"
FOR /F "usebackq delims=" %%i IN (`2^>nul Dir "%BoxOut%" /B /A:D`) DO Call :Link "%BoxOut%\%%i.lnk" "%BoxOut%\%%i"
pause
Exit /B 0
:Folder
If Not Exist "%~3%~pnx1" (
If Exist "%~1\%~2" (
Md "%~3%~pnx1"
Call :Files %1 %2 "%~3%~pnx1"
)
)
Exit /B 0
:Files
FOR /F "usebackq delims=" %%j IN (`2^>nul Dir "%~1\%~2" /B /A:-D`) DO (
If Not Exist "%~3\%%j.lnk" Call :Link "%~3\%%j.lnk" "%~1\%%j"
)
Exit /B 0
:Link
@mshta vbscript:Execute("Set x=CreateObject(""WScript.Shell"").CreateShortcut("%1"):x.TargetPath="%2":x.Save():Close()")
Exit /B 0
Пропишите свои пути. Если надо всё пересоздать заново, уберите
rem в выделенной строке,
при этом крайне опасно указывать в качестве выходной папки корневую папку диска, например, D:, особенно Если надо всё пересоздать заново. С диска всё будет удалено.
Вы не определились, куда поместить ярлык на верхнюю папку. Я поместил его в папку, прописанную в BoxOut. Можете его скопировать куда угодно.