Итак, я изучил некоторые сценарии cmd и вот что я придумал:
SET target="M:\TEST"
SET filter="Personal"
forfiles /s /m %filter% /c "cmd /c IF @isdir==TRUE mkdir %target%\@relpath"
forfiles /s /m %filter% /c "cmd /c IF @isdir==TRUE rmdir %target%\@relpath"
forfiles /s /m %filter% /c "cmd /c IF @isdir==TRUE mklink /D %target%\@relpath %cd%\@relpath"
Он будет искать все папки с именем "Личные" в текущем каталоге и создавать символические ссылки в целевом каталоге. Мне пришлось сделать некоторые хитрости, чтобы сохранить структуру папок. (Он не хотел создавать символические ссылки в местах, которые еще не существовали.)
Это может быть запутанным, но и программы, которыми я пытаюсь управлять (в данном случае FL Studio).
ОБНОВИТЬ
Этот код сталкивался с проблемами, когда в путях были пробелы. Спустя много часов безумия, вот что, похоже, работает. Да, есть много цитат.
SET target=C:\Program Files\Path With Spaces
SET filter=Personal
forfiles /s /m %filter% /c "cmd /c IF @isdir==TRUE mkdir """%target%"""\@relpath"
forfiles /s /m %filter% /c "cmd /c IF @isdir==TRUE rmdir """%target%"""\@relpath"
forfiles /s /m %filter% /c "cmd /c IF @isdir==TRUE mklink /D """%target%"""\@relpath """%cd%"""\@relpath"