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

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

Ответить
Настройки темы
CMD/BAT - [решено] как сделать проверку файла (файлов) через cmd

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


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

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


В принципе в теме все написано. Нужно что бы при запуске данного приложения, оно проверило есть ли данный файл в конкретном месте. и по возможности добавило результат в лог "log_file.log"

Отправлено: 01:45, 29-09-2011

 

Ветеран


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

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


Код: Выделить весь код
@echo off
chcp 866
set file=C:\file.txt
set log=C:\log_file.log
if exist %file% (
echo Файл %file% присутсвует > %log%
) else echo Файл %file% отсутсвует > %log%
Это сообщение посчитали полезным следующие участники:

Отправлено: 02:06, 29-09-2011 | #2



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

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


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


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

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


и еще по этой же теме. Как сделать что бы проверял несколько файлов на наличие, и записывал результаты в один лог файл.
все перепробовал - ничего не выходит

Отправлено: 03:05, 30-09-2011 | #3


Старожил


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

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


Вот так:
Код: Выделить весь код
@Echo Off

Set Files=Текстовый документ.txt*servers.txt*wipe.cpp*jids.config*C:\Temp\amt.log
Set LogFile=log.txt

Echo.>>%LogFile%
:Loop
For /F "tokens=1,* delims=*" %%A In ("%Files%") Do (
If Exist "%%A" (
Echo Файл %%A найден>>%LogFile%) Else (
Echo Файла %%A не существует>>%LogFile%)
If Not "%%B"=="" (Set Files=%%B && Goto Loop)
)
Если планируются русские буквы в путях\именах файлов, то сохранять в 866 DOS кодировке. Файлы для проверки записываются через разделитель - "*"

Iska, спасибо за подсказку, я об этом не подумал.

Последний раз редактировалось Anonymоus, 30-09-2011 в 13:00.

Это сообщение посчитали полезным следующие участники:

Отправлено: 05:22, 30-09-2011 | #4


Ветеран


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

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


Цитата Anonymоus:
Файлы для проверки записываются через разделитель - ";" »
Лучше для сего применять какой-либо заведомо недопустимый для объектов файловой системы символ.
Это сообщение посчитали полезным следующие участники:

Отправлено: 06:58, 30-09-2011 | #5


Ветеран


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

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


Цитата Anonymоus:
Файлы для проверки записываются через разделитель - "/" »
Anonymоus, я Вас замучаю, наверное… «/» — тоже вполне допустимый символ в путях (для NT-систем).

Я прошу прощения, что сразу не указал допустимый перечень.

Naming Conventions (для путей — за вычетом красного; да ещё при использовании UNC путей допустимо указание «?» в префиксе «\\?\»):
Цитата:
The following reserved characters:

< (less than)
> (greater than)
: (colon)
" (double quote)
/ (forward slash)
\ (backslash)

| (vertical bar or pipe)
? (question mark)
* (asterisk)
Поскольку в «In (…)» могут быть и маски, да ещё проблемы с использованием спецсимволов, употребляемых в самих пакетных файлах, то остаётся немного.
Это сообщение посчитали полезным следующие участники:

Отправлено: 10:01, 30-09-2011 | #6


Старожил


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

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


< > " | - сразу отпадают, так как нуждаются в экранировании.
: \ / - могут содержаться в путях.
Так что выбираем "*" (проверял, работает с ним). Исправил пост со скриптом, еще раз спасибо за уточнения.
Это сообщение посчитали полезным следующие участники:

Отправлено: 12:59, 30-09-2011 | #7


Ветеран


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

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


Цитата Anonymоus:
«:» … - могут содержаться в путях. »
Угу. Сам говорил про пути, а про «:» — как-то выпало из внимания.
Это сообщение посчитали полезным следующие участники:

Отправлено: 13:58, 30-09-2011 | #8


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


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

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


Цитата Anonymоus:
Если планируются русские буквы в путях\именах файлов, то сохранять в 866 DOS кодировке »
немного не понял... как сохранять в такой кодировке?
P.S пользуюсь блокнотом, может надо какой-нибудь программой сохранять?...

и еще: я так понял команды "cd.." для перехода на уровень выше, и "@Echo" для комментариев в данном коде не работают...

Последний раз редактировалось CaHeK_pk, 30-09-2011 в 20:19.


Отправлено: 19:56, 30-09-2011 | #9


Аватара для ferget

Разный


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

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


Цитата CaHeK_pk:
как сохранять в такой кодировке? »
AkelPad или notepad++
Это сообщение посчитали полезным следующие участники:

Отправлено: 20:41, 30-09-2011 | #10



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] Как создать проверку в программе по времени создания файла white155 Скриптовые языки администрирования Windows 2 01-08-2011 12:52
[решено] Как через AutoIt или cmd узнать версию файла? seriych AutoIt 2 14-03-2011 13:55
Доступ - [решено] Как сделать скрытую учётную запись через cmd? systeman Microsoft Windows 7 3 15-02-2011 15:37
Как сделать logout юзера через cmd ? zi0n Хочу все знать 3 22-06-2010 18:11
CMD/BAT - как реализовать по средствам cmd проверку на установленную программу? smol84 Скриптовые языки администрирования Windows 1 15-10-2009 12:37




 
Переход