как сделать проверку файла (файлов) через cmd
В принципе в теме все написано. Нужно что бы при запуске данного приложения, оно проверило есть ли данный файл в конкретном месте. и по возможности добавило результат в лог "log_file.log"
|
Код:
@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%
|
и еще по этой же теме. Как сделать что бы проверял несколько файлов на наличие, и записывал результаты в один лог файл.
все перепробовал - ничего не выходит
|
Вот так:
Код:
@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
Файлы для проверки записываются через разделитель - ";" »
|
Лучше для сего применять какой-либо заведомо недопустимый для объектов файловой системы символ.
|
Цитата:
Цитата 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 (…)» могут быть и маски, да ещё проблемы с использованием спецсимволов, употребляемых в самих пакетных файлах, то остаётся немного.
|
< > " | - сразу отпадают, так как нуждаются в экранировании.
: \ / - могут содержаться в путях.
Так что выбираем "*" (проверял, работает с ним). Исправил пост со скриптом, еще раз спасибо за уточнения.
|
Цитата:
Цитата Anonymоus
«:» … - могут содержаться в путях. »
|
Угу. Сам говорил про пути, а про «:» — как-то выпало из внимания.
|
Цитата:
Цитата Anonymоus
Если планируются русские буквы в путях\именах файлов, то сохранять в 866 DOS кодировке »
|
немного не понял... как сохранять в такой кодировке?
P.S пользуюсь блокнотом, может надо какой-нибудь программой сохранять?...
и еще: я так понял команды "cd.." для перехода на уровень выше, и "@Echo" для комментариев в данном коде не работают...
|
Цитата:
Цитата CaHeK_pk
как сохранять в такой кодировке? »
|
AkelPad или notepad++
|
Время: 15:38.
© OSzone.net 2001-