Имя пользователя:
Пароль:
 | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Проверка установки определенных файлов в директорию

Ответить
Настройки темы
CMD/BAT - [решено] Проверка установки определенных файлов в директорию

Новый участник


Сообщения: 25
Благодарности: 0

Профиль | Отправить PM | Цитировать


Доброго времени суток.
Задача такова. При установке программы на машину необходимо проверить, все ли файлы установились и в правильные директории. Если какой-то файлы не установились выводится сообщение, такие-то файлы не установлены. Организовать необходимо с помощью задания относительного адреса. Как я предполагаю, проверка происходит с помощью цикла for. Но я начинающий дуб. Может кто сможет помочь в решении этой задачи, буду признателен.

Отправлено: 12:21, 27-05-2010

 

Googler


Сообщения: 3665
Благодарности: 1563

Профиль | Отправить PM | Цитировать


Цитата korenza:
в папке Apache существуют подпапки тоже с файлами? »
указывайте в списке файлы с относительными путями:
Код: Выделить весь код
base.gif
DIR1\base_tab.gif
DIR2\branch.gif
DIR3\tn.ico

Отправлено: 16:10, 28-05-2010 | #11



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для gora

Ушёл из жизни


Сообщения: 6021
Благодарности: 3491

Профиль | Отправить PM | Цитировать


От файла списка можно отказаться, если поместить список в тело скрипта:
Код: Выделить весь код
@Echo Off

Set ROOT=C:\Program Files\Apache

For %%i In (
	"base.gif"
	"DIR 1\base_tab.gif"
	"DIR 2\branch.gif"
	"DIR 3\tn.ico"
) Do If Not Exist "%ROOT%\%%~i" msg * Отсутствует файл: %ROOT%\%%~i

Отправлено: 16:46, 28-05-2010 | #12


Новый участник


Сообщения: 25
Благодарности: 0

Профиль | Отправить PM | Цитировать


Проблема в том, что код
Код: Выделить весь код
@Echo Off 
Set ROOT=C:\Program Files\Apache 
Set INCL=apache.lst  
PushD %ROOT% For /F "UseBackQ Delims=" %%i In ("%~dp0%INCL%") Do If Not Exist %%i ( msg * Отсутствует файл: %%i)
Работает, но необходимо не менять в батнике каждый раз Set ROOT=C:\Program Files\Apache

Отправлено: 11:11, 03-06-2010 | #13


Googler


Сообщения: 3665
Благодарности: 1563

Профиль | Отправить PM | Цитировать


korenza, а откуда брать значение ROOT?.. как вариант:
Код: Выделить весь код
Set ROOT=%~1
Set INCL=%~2
...и подставлять путь/список в командную строку:
Код: Выделить весь код
install.cmd "C:\Program Files\Apache" "apache.lst"

Отправлено: 11:29, 03-06-2010 | #14


Новый участник


Сообщения: 25
Благодарности: 0

Профиль | Отправить PM | Цитировать


Добавил такую конструкцию
Код: Выделить весь код
FOR %%I IN (c d e f g h i j k l m n o p q r s t u v w x y z) DO IF EXIST %%I:\Папка1\Папка2\Папка3\Папка4\  Set ROOT= %%I:
Если прога установлена на С: ,то все путем, записывает в текстовый файл, что нет таких-то файлов. Как создаю такой же путь на диске D: выводит в текстовом файле Отсутствует файл: d:\await.gif и т.д. без конкретного пути. По идее должна быть запись что Отсутствует файл: C:\Папка1\Папка2\Папка3\Папка4\файл1 и D:\Папка1\Папка2\Папка3\Папка4\файл1

Отправлено: 12:35, 03-06-2010 | #15


Googler


Сообщения: 3665
Благодарности: 1563

Профиль | Отправить PM | Цитировать


Цитата korenza:
Отсутствует файл: d:\await.gif и т.д. без конкретного пути. По идее должна быть запись что Отсутствует файл: C:\Папка1\Папка2\Папка3\Папка4\файл1 и D:\Папка1\Папка2\Папка3\Папка4\файл1 »
скрипт определяет пути относительно папки приложения, можно добавить её в итоговый путь:
Код: Выделить весь код
@Echo Off 

Set ROOT=%~1
Set INCL=%~2

PushD %ROOT%
For /F "UseBackQ Delims=" %%i In ("%~dp0%INCL%") Do If Not Exist %%i (
msg * Отсутствует файл: %ROOT%\%%i)

Отправлено: 12:53, 03-06-2010 | #16


Новый участник


Сообщения: 25
Благодарности: 0

Профиль | Отправить PM | Цитировать


В том-то и вопрос, что я ее, собственно так и добавил %ROOT%\%%i
Если такого файла нет диске C: , то он честно пишет отсутствует файл: весь путь.
Как только создаю точно-такой же путь на диске D: выдает такую гадость Отсутствует файл: D:\Файл1

Отправлено: 13:11, 03-06-2010 | #17


Googler


Сообщения: 3665
Благодарности: 1563

Профиль | Отправить PM | Цитировать


korenza, не понял, у вас файлы приложения разнесены по разным дискам?.. так без проблем:
Код: Выделить весь код
install.cmd "D:\Program Files\Apache" "apache.lst"

Отправлено: 13:25, 03-06-2010 | #18



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Проверка установки определенных файлов в директорию

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
.NET - Чтение определенных данных с файлов(есть пример проги и файла) crashtuak Программирование и базы данных 1 18-05-2009 15:14
Ограничения на запись файлов определенных форматов Aleksey Potapov Microsoft Windows NT/2000/2003 5 09-07-2008 11:55
Программа для удаления определенных файлов adam1983 Программное обеспечение Windows 3 04-06-2007 22:46
Проверка защищенных файлов SergOst Microsoft Windows NT/2000/2003 11 15-10-2006 18:07
Ограничение на скачивание определенных файлов с интернета SergeyYSL5 Сетевые технологии 5 12-07-2005 08:46




 
Переход