Задача:
Есть папка, содержащая набор подпапок с jpg-файлами:
fldr1
- subfldr1
- 1.jpg
- 2.jpg
- subfldr2
- 1.jpg
- 2.jpg
...
- subfldrN
- 1.jpg
- 2.jpg
Нужно в некоторой другой папке создать символические ссылки на все файлы всех подпапок папки fldr1 (имена символических ссылок непринципиальны).
Решение:
Следующий bat-ник принимает на вход 2 параметра: имя папки-источника и имя папки для создания символических ссылок (все имена без слешей в конце и с обратными слешами), и создает в последней символические ссылки с файлами 1.jpg .... m.jpg:
Есть папка, содержащая набор подпапок с jpg-файлами:
fldr1
- subfldr1
- 1.jpg
- 2.jpg
- subfldr2
- 1.jpg
- 2.jpg
...
- subfldrN
- 1.jpg
- 2.jpg
Нужно в некоторой другой папке создать символические ссылки на все файлы всех подпапок папки fldr1 (имена символических ссылок непринципиальны).
Решение:
Следующий bat-ник принимает на вход 2 параметра: имя папки-источника и имя папки для создания символических ссылок (все имена без слешей в конце и с обратными слешами), и создает в последней символические ссылки с файлами 1.jpg .... m.jpg:
@echo off
SETLOCAL EnableDelayedExpansion
SET curdir=%CD%
SET cnt=0
FOR /F "tokens=*" %%i IN ('dir %1 /b') DO (
FOR /F "tokens=*" %%f IN ('dir "%1\%%i" /b') DO ( mklink %2\!cnt!.jpg "%1\%%i\%%f"
SET /a cnt+=1 )
)
pause
Очень полезно с учетом того, что ротатор обоев в Windows 7 не умеет смотреть в подпапки выбранной папки, поэтому, чтобы в ротации участвовали обои из разных подпапок одной папки, нужно сгрузить символические ссылки на них в какую-нибудь одну папку.
Комментариев нет:
Отправить комментарий