Форум программистов, компьютерный форум, киберфорум
Наши страницы
Batch (CMD/BAT)
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/3: Рейтинг темы: голосов - 3, средняя оценка - 5.00
A_3485
0 / 0 / 0
Регистрация: 02.10.2012
Сообщений: 62
1

Проверять разные файлы в каталоге и, если какого-либо файла нет, выводить сообщение

15.02.2014, 00:26. Просмотров 601. Ответов 5
Метки нет (Все метки)

Всем доброго времени суток!

Помогите пожалуйста разобраться в следующем bat файле:
Мне нужно проверять разные файлы в каталоге и если какого-либо файла нет то выходит сообщение, если файлы есть то они перекладываются в нужные каталоги. Не могу понять что не так (это мой первый bat файл) может нужно было гдето добавить ELSE:

Bash
1
2
3
4
5
6
7
8
: ERT - закоментировал имя обраб. файлов
: VBC
 
IF NOT EXIST \\100.000.00.00\Docum\test\ERT*.* ECHO Нет файлов!
IF NOT EXIST \\100.000.00.00\Docum\test\VBC*.* ECHO Нет файлов!
 
copy \\100.000.00.00\Docum\test\*.* \\100.000.00.00\Docum\test\bak\ - просходит копирование
move \\100.000.00.00\Docum\test\*.* \\100.000.00.00\Docum\test\bak\rev\ - перемещение файлов
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.02.2014, 00:26
Ответы с готовыми решениями:

Если запустил Иванов, вывести строку: "Нет доступа", если Петров - "Не сегодня". Для остальных - информация о каталоге запуска bat-файла
Создать командный файл при вызове, которого указать фамилию запускающего. Если...

Вывести вторую и предпоследнюю строки файла. Если в файле только одна строка, то выводить сообщение «нет решения»
Вывести вторую и предпоследнюю строки файла. Если в файле только одна строка,...

Поиск файла в каталоге если нет , то создать
Добрый день , облазил кучу сайтов , но не нашел ответ на вопрос ... Как...

Проверять текущее время, и в зависимости от него выводить сообщение
Возможно ли сделать так, чтобы программа проверяла какое время и в зависимости...

Нет звуковых сигналов от биоса и какого либо изображения на мониторе
Доброго времени суток! Простите если не по теме, но вроде сюда. проблемка...

5
overlord754
59 / 21 / 9
Регистрация: 24.10.2009
Сообщений: 198
18.02.2014, 12:47 2
A_3485,
Bash
1
2
3
4
5
6
7
8
IF NOT EXIST \\100.000.00.00\Docum\test\ERT*.* (ECHO Нет файлов ERT!
goto end) else (
IF NOT EXIST \\100.000.00.00\Docum\test\VBC*.* (ECHO Нет файлов VSB!
goto end))
 
copy \\100.000.00.00\Docum\test\*.* \\100.000.00.00\Docum\test\bak\ - просходит копирование
move \\100.000.00.00\Docum\test\*.* \\100.000.00.00\Docum\test\bak\rev\ - перемещение файлов
:end
может так?
0
ldighost
12 / 4 / 0
Регистрация: 30.06.2012
Сообщений: 15
18.02.2014, 13:16 3
Bash
1
2
3
4
5
6
7
call :ren_procedure ERT \\100.000.00.00\Docum\test
call :ren_procedure VBC \\100.000.00.00\Docum\test
goto eof
 
:ren_procedure
IF NOT EXIST %2\%1*.* (ECHO Нет файлов %1!) else (xcopy /y %2\%1*.* %2\bak\ && md %2\bak\rev\ & move /y %2\%1*.* %2\bak\rev\)
goto eof
0
A_3485
0 / 0 / 0
Регистрация: 02.10.2012
Сообщений: 62
19.02.2014, 12:05  [ТС] 4
Доброго времени суток!

Спасибо за помощь! Можно только более подробно рассписать по строчно что происходит при выполении кода

Добавлено через 45 минут
Цитата Сообщение от ldighost Посмотреть сообщение
Bash
1
2
3
4
5
6
7
call :ren_procedure ERT \\100.000.00.00\Docum\test
call :ren_procedure VBC \\100.000.00.00\Docum\test
goto eof
 
:ren_procedure
IF NOT EXIST %2\%1*.* (ECHO Нет файлов %1!) else (xcopy /y %2\%1*.* %2\bak\ && md %2\bak\rev\ & move /y %2\%1*.* %2\bak\rev\)
goto eof
Что-то ничего не получилоь. Поставил в 7 строку pause для проверки выполненных команд. Обработка пишет: Не удается найти указанную метку пакетного файла - eof.
Есби бы можно было скопировать информацию в окне с:\, то я бы ее выслал для анализа, а так не знаю что делать.
0
ldighost
12 / 4 / 0
Регистрация: 30.06.2012
Сообщений: 15
19.02.2014, 12:45 5
1 строка переходим на метку :ren_procedure с параметром %1 = ERT и %2 = \\100.000.00.00\Docum\test (передаются две переменный маска для искомых файлов и путь где они находятся)
2 строка аналогична первой
3 переход в конец файла, можно сделать метку :END в конце батника и на нее переходить
4 null
5 наша метка куда мы приходим со строк 1 и 2
6.1 IF NOT EXIST %2\%1*.* (ECHO Нет файлов %1!) - аналогично IF NOT EXIST \\100.000.00.00\Docum\test\ERT*.* (ECHO Нет файлов ERT!) - проверили на наличие файлов если не нашли их вывели ЭХО
6.2 else - иначе, т.е. если такие файлы нашлись тогда
6.3 xcopy /y %2\%1*.* %2\bak\ - скопировали файлы (директорий создастся если его нет)
6.4 && md %2\bak\rev\ - если скопировали без ошибок то создаем директорий (вдруг его там нет)
6.5 & move /y %2\%1*.* %2\bak\rev\ - если выполнили 6.3 и неважно выполнился ли 6.4 переносим файлы
0
A_3485
0 / 0 / 0
Регистрация: 02.10.2012
Сообщений: 62
19.02.2014, 12:50  [ТС] 6
По расшифровке строк, все понятно. Большое спасибо.
Сообщеие ЭХО должно выводиться на экран на какое время?. Как проверить правильность отработки кода?
0
19.02.2014, 12:50
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.02.2014, 12:50

в строку загнать путь до какого-либо файла
Хочу в строку загнать путь до какого либо файла, однако при чтении слеша("\"),...

Открытие какого либо файла из другой папки
Привет, нужен ответ, представим ситуацию, есть хранилище(диск D) в нем 3...

Сделать так, что если человек авторизован выводить одну форму, если нет - другую.
Надо сделать так, что если человек авторизован выводить одну форму, если нет...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru