Запустите программу на основе подстановочного знака в Сценарии пакетной обработки

Я создаю сценарий установки для программы, разработанной кем-то еще. Их установщик не установит по существующей версии, таким образом, я должен буду удалить любые предыдущие установки.

Деинсталлятор называют unins$num.exe, где $num является числом, которое, кажется, увеличивает каждый раз, когда программа установлена, (например, unins000.exe, unins001.exe, unins002.exe).

Я использую сценарий пакетной обработки MS-DOS в данный момент, поскольку у других людей в моем отделе был бы шанс поддержания его, но если это намного легче на некотором другом языке, я открыт для изменения. Единственное требование - то, что я не могу установить интерпретатор сначала, таким образом, он должен быть встроен к Windows.

Моими целевыми платформами является Windows XP и Windows 7. Поддержка Windows Vista хороша, но не требуемая.

Как я могу использовать подстановочный знак для запуска программы, таким образом, я не должен перечислять 1000 возможных exe's?

8
задан 04.08.2011, 21:08

1 ответ

Это предполагает, что целевая папка только содержала бы единственный исполняемый файл unins$num.exe, и что сценарий пакетной обработки находится в той же папке как деинсталлятор:

@echo off
FOR /f "tokens=*" %%G IN ('dir /b unins*.exe') DO %%G

В основных условиях это просто циклы через вывод dir /b unins*.exe и выполняет каждый результат один за другим.

Если бы Вы хотели это так, чтобы сценарий пакетной обработки мог быть выполнен от другого местоположения (но все еще сохранен в той же папке как исполняемый файл удаления), затем, Вы могли добавить % ~dp0 (путь сценария пакетной обработки) к сценарию:

@echo off
FOR /f "tokens=*" %%G IN ('dir /b %~dp0\unins*.exe') DO %~dp0\%%G

Наконец, если Вы хотели сценарий пакетной обработки в другой папке к исполняемому файлу удаления затем, Вы просто заменяете % ~dp0 тем, что полный путь, например, если деинсталлятор находится в C:\CoolProgram:

@echo off
FOR /f "tokens=*" %%G IN ('dir /b C:\CoolProgram\unins*.exe') DO C:\CoolProgram\%%G
10
ответ дан 07.12.2019, 14:05

Теги

Похожие вопросы