Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

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

Ответить
Настройки темы
CMD/BAT - [решено] Определение атрибута файла & проверка наличия процесса

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


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

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


Подскажите пожалуйста, как через bat-файл:

1) проверить, имеет ли определённый файл атрибут "только чтение" и если имеет, присвоить значение преременной.

2) проверить, запущен ли определённый процесс и если он запущен, присвоить значение переменной.

Заранее благодарен.

Отправлено: 21:32, 18-08-2009

 

Googler


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

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


Код: Выделить весь код
Attrib "File.txt"|>Nul FindStr /BIR ".....R"&& Set RO=Y
Код: Выделить весь код
TaskList|>Nul FindStr /BI "notepad.exe"&& Set PE=Y
Это сообщение посчитали полезным следующие участники:

Отправлено: 05:05, 19-08-2009 | #2



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

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


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


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

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


amel27, спасибо, буду пробовать...

Отправлено: 11:24, 19-08-2009 | #3


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


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

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


А можно немного прокомментировать код, или посмотерть что это. Мне просто нужно системный аттрибут, это я нашёл, но не понял как он количство переменной передает?

Отправлено: 23:10, 18-11-2010 | #4


Googler


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

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


Цитата Hardip:
можно немного прокомментировать код »
Код: Выделить весь код
Attrib "File.txt"     - выводит атрибуты файла
|                     - перенаправляет вывод следующей команде
FindStr /BIR ".....R" - ищет во входном тексте нужный атрибут
&&                    - если "успех", выполняется следующая команда
Set RO=Y              - присваивает переменной RO значение Y
Это сообщение посчитали полезным следующие участники:

Отправлено: 03:44, 19-11-2010 | #5


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


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

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


Спасибо! Очень грамотно расписано. Воспользоваться командой attrib /?, там нашёл что системные файлы имеют атрибут /s. Для поиска всех системных файлов в текущем каталоге и вывода количества на экран, я прав?
Код: Выделить весь код
Attrib "*.*"|>Nul FindStr /BIR ".....R"&& Set %RO=RO+1
echo %RO%

Отправлено: 09:46, 19-11-2010 | #6


Googler


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

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


Hardip, у атрибута S другое положение в строке, отфильтровать только системные файлы:
Код: Выделить весь код
Attrib *|FindStr /BR "...S.."
Это сообщение посчитали полезным следующие участники:

Отправлено: 11:57, 19-11-2010 | #7


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


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

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


Изображения
Тип файла: jpg 2010-11-19_151849.jpg
(91.5 Kb, 18 просмотров)
Тип файла: jpg 2010-11-19_151904.jpg
(49.0 Kb, 12 просмотров)

Цитата amel27:
Attrib *|FindStr /BR "...S.." »
Спасибо! Сделал я вот так
Код: Выделить весь код
Set Cnt=0  For %%I In (*) Do Attrib "*.*"|FindStr /BR "...S.."&& Set /A Cnt += 1
 Echo %Cnt%
Файлов в катологе 4, и он их имена и выводит, но выводит кол-во файлов почему - то 3. Вот картинки файлов и программы.

Отправлено: 15:21, 19-11-2010 | #8


Googler


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

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


Цитата Hardip:
Сделал я вот так »
цикл FOR перебирает все файлы в текущем каталоге, для каждого файла:

- ATTRIB выводит ВСЕ файлы, передает их в FindStr;
- если FindStr находит хотя бы один системный, возвращает TRUE;
- так как хотя бы один есть всегда, инкрементируется CNT

т.е. скрипт подсчитывает общее кол-во файлов в текущем каталоге

вывести количество системных файлов можно так:
Код: Выделить весь код
@echo off

Attrib *|FindStr /BR "...S.."|Find /C /V ""
pause>nul
Это сообщение посчитали полезным следующие участники:

Отправлено: 15:58, 19-11-2010 | #9


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


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

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


Цитата amel27:
вывести количество системных файлов можно так: »
Вот это да! Не думал, что можно напрямую - "" передавать поиск.. С /С всё ясно. А параметр /V ведь задает - "Вывод всех строк, не содержащих данную строку". Почему он здесь?

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



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Проверка запущенного процесса Anarasius AutoIt 2 25-06-2014 11:39
VBS/WSH/JS - [решено] Проверка наличия соединения с интернетом (*.vbs) BadAngel Скриптовые языки администрирования Windows 9 18-04-2011 12:06
CMD/BAT - Проверка наличия диска в дисководе по папке MedVetoff Скриптовые языки администрирования Windows 8 27-08-2009 16:55
[решено] Определение наличия рисунка System Failure Вебмастеру 4 15-02-2009 01:02
[решено] Проверка наличия поля в таблице БД Artem-Samsung Вебмастеру 8 19-03-2008 21:40




 
Переход