Заменить все ярлыки autocad, найденные в системе с помощью Batch? - PullRequest
1 голос
/ 15 апреля 2011

Мне нужно заменить каждый значок (AutoCAD 2010.LNK), найденный на компьютере, на другой .LNK с помощью пакета.

Значок \ ярлык, как мы хорошо знаем, можно найти в любом месте и столько раз, сколько пожелает пользователь.

Как мне этого добиться?

Ответы [ 2 ]

1 голос
/ 15 апреля 2011
@ECHO OFF
SET "linklist=%USERPROFILE%\linklist.txt"
SET "replacement=D:\path\to\replacement.lnk"
ECHO Searching...
DIR /B /S "C:\AutoCAD 2010.LNK" >%linklist%
DIR /B /S "D:\AutoCAD 2010.LNK" >>%linklist%
:: add similar rows for every drive letter you want to be included
ECHO Replacing...
FOR /F "tokens=*" %%f IN (%linklist%) DO COPY %replacement% %%f
ECHO Finished.

Пара заметок:

  • Ваш замещающий файл ярлыка должен иметь другое имя (например, AutoCAD 2010.LNK.new).

  • В Windows Vista / 7 вам, вероятно, будет запрещено перезаписывать файлы в определенных папках, если вы не запускаете сценарий с повышенными правами.

1 голос
/ 15 апреля 2011

сначала прочитайте HELP FOR

, а затем попробуйте это в командной строке

  FOR /F "tokens=*" %a in ('dir /B /S "AUTOCAD 2010.LNK"') do ECHO COPY new.lnk %a

экспериментируйте с различными местами и тщательно проверяйте

затем создайте файл bat со следующим содержимым. Обратите внимание на изменение% a на %% a и удаление 'echo'

@echo off
PUSHD C:\
FOR /F "tokens=*" %%a in ('dir /B /S "AUTOCAD 2010.LNK"') do COPY new.lnk %%a
POPD
...