Форум программистов, компьютерный форум, киберфорум
Наши страницы
Batch (CMD/BAT)
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
Bazaroff
54 / 50 / 2
Регистрация: 29.05.2011
Сообщений: 1,389
1

Последовательное выполнение команд

06.09.2015, 15:26. Просмотров 1984. Ответов 12
Метки нет (Все метки)

Конструкция взята из учебника:
Код
echo.|date>c:\file.2
fc c:\file.2 c:\file.1 | find "fc: no differences" > nul
if errorlevel 1 goto no_ndd
ndd c: /c
image c:
echo.|date>c:\ndd_date>c:\file.1
:no_ndd
Не работает.
File.2 создает.
Подставлял код возврата 0 - никаких изменений.
Поэкспериментировал: в качестве вывода "nul" указывал файл some.txt. Файл создается, но он пустой.
Пытался перенаправления указывать без пробелов - безрезультатно.
В чем косяк?

ЗЫ Ясно, что для поставленной задачи, можно использовать и другие средства. Мне важно разобраться почему это не работает.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.09.2015, 15:26
Ответы с готовыми решениями:

Последовательное выполнение команд
Добрый день. Такая проблемка, есть много команд которые надо выполнять по очереди, на данный...

Последовательное выполнение всех команд в bat-файле
Всем привет, ребят, помогите пожалуйста с проблемкой, в бат файле выполняются не все команды, а...

Выполнение двух команд в BAT-файле
Доброго времени суток, уважаемые форумчане! Столкнулся на работе с тем, что каждый раз...

Проверка прав админа и выполнение команд
Подскажите как сделать если батник запущен с правами администратора то выполнить: RDPWInst -i...

Выполнение команд параллельно, но не более N одновременно
Приветствую, прошу помощи с написанием bat скрипта. Необходимый функционал: Из файла (txt)...

12
alpap
1812 / 1330 / 433
Регистрация: 26.04.2015
Сообщений: 4,552
08.09.2015, 02:48 2
Bazaroff,
Цитата Сообщение от Bazaroff Посмотреть сообщение
Мне важно разобраться почему это не работает
- а мне важно какая задача стоит, так как она не ясна ни из темы ни из странного неизвестного батника и уж тем более из совершенно никому не известного учебника.
0
UI-Maker
38 / 38 / 11
Регистрация: 05.09.2015
Сообщений: 262
08.09.2015, 03:06 3
А по порядку попробовать все команды незя?
C:\Users\Pavel>fc C:\tmp\date.1 C:\tmp\date.2
Сравнение файлов C:\TMP\date.1 и C:\TMP\DATE.2
FC: различия не найдены
Вывод:
Windows Batch file
1
... find "FC: различия не найдены" > nul
Добавлено через 1 минуту
А вообще планировщик заданий есть для подобного.
0
sov44
1760 / 744 / 128
Регистрация: 09.04.2011
Сообщений: 1,314
08.09.2015, 10:13 4
Bazaroff, Вы пытаетесь сравнить файл file.2 с file.1, который видимо ещё не создан.
У меня в консоли вывод "FC: различия не найдены", посмотрите какой вывод консоли у Вас.
Команду find лучше использовать с ключом /i

п.с. почему бы вместо date не использовать переменную %date% ?
Windows Batch file
1
%date%>c:\file.2
Добавлено через 2 минуты
Windows Batch file
1
fc c:\file.2 c:\file.1 | find /i "no differences" > nul && (echo. одинаковы) || (echo. имеются различия)
0
Garry Galler
1826 / 1387 / 528
Регистрация: 28.10.2013
Сообщений: 3,540
08.09.2015, 11:01 5
Bazaroff,
У вас русская локализация (UI) windows (как, наверно, и у большинства на этом форуме) и поэтому fc выводит не "fc: no differences", а "FC: различия не найдены".
1
UI-Maker
38 / 38 / 11
Регистрация: 05.09.2015
Сообщений: 262
08.09.2015, 18:32 6
И к регистру чувствительно, кстати.
Может стоит сравнивать с переменной, которую в начале скрипта заполнять?
Делаем два одинаковых файла, сравниваем, вытаскиваем из результата строку с текущей локалью.
0
Bazaroff
54 / 50 / 2
Регистрация: 29.05.2011
Сообщений: 1,389
08.09.2015, 19:16  [ТС] 7
Прошу прощения за упущение подробностей.
ОС MS DOS 6.22 (юзаю на виртуалке).
Задача - выполнение команд (в конкретном случае - NDD и Image) раз в день при начальной загрузке. Учебник - Фигурнов: "IBM PC для пользователя".
Увидел опечатку в первом посте. Строчку 6 нужно читать как
Код
echo.|date>c:\file.1
Извините.(
По существу.
Создал сам File.1, отличный от File.2 - не шевелится.
Пробовал указывать для find параметр /i - ноль.
Проверил регистр символов - безрезультатно.
Запускал команды по отдельности из командной строки. Сравнивает.
Впечатление такое, что косяк по команде find.
0
alpap
1812 / 1330 / 433
Регистрация: 26.04.2015
Сообщений: 4,552
08.09.2015, 22:38 8
Bazaroff, Много хотел написать но лень стало. Поставьте четко задачу что надо сделать не взирая на какие-то вычитанные, выдуманные (надуманные) батники, более чем уверен помогут гораздо быстрее составить новый, чем пытаться с Вашей скромной помощью рыться в чьих-то (объедках) "умных" книжках.
0
Bazaroff
54 / 50 / 2
Регистрация: 29.05.2011
Сообщений: 1,389
08.09.2015, 23:16  [ТС] 9
alpap, прошу вас, не сердитесь на меня.(
Я не ставил себе некой задачи. Я изучаю, если так можно сказать, учебник.
Меня интересует почему представленный в нем пример не работает.
Собственно я это озвучил в первом посте.
Возможно неверно напечатан скрипт и я с вашей помощью узнаю как правильно писать такую конструкцию или использовать эти команды.
Ну вот, где-то в этом духе.
0
alpap
1812 / 1330 / 433
Регистрация: 26.04.2015
Сообщений: 4,552
09.09.2015, 08:35 10
Bazaroff, О чем Вы, кто сердится, думаете я большой спец? Просто тоже раньше прельщали учебники, но они чаще всего написаны для человека уже знающего и немало - не знаю почему так. Я кое-чему научился именно здесь, на форуме. Собирал нужные знания по крупицам, потом помогал другим и вот когда именно попмогал и помогаю понял что от максимально досконально правильно и развернуто и откровенно поставленной задачи, условия, зависит так необходимый компактный работоспособный удобный и правильный и при этом оперативный ответ. А, теперь, по существу. Если по Вашему коду, то sov44, почти все разжевал, а если все-таки нужно именно чего-то, а не разобрать код, поставьте четкую задачу.
0
Bazaroff
54 / 50 / 2
Регистрация: 29.05.2011
Сообщений: 1,389
09.09.2015, 23:44  [ТС] 11
Хех...
Доковырял.)
Впечатление такое, что FIND, вопреки справкам, возвращает только единицу при "непопадании". (Как вариант, правда, может быть кривой Command.com ?)
Состряпал такой батник
Код
find "some string" file.xxx
if errorlevel x goto end
some_command
:end
В качестве кода перебирал возможные варианты.
В file.xxx подсовывал и убирал "some string".
Единственно лишь при указании errorlevel 1 выполнялась или не выполнялась some_command. При указании любых других кодов - ничего не менялось!
0
alpap
1812 / 1330 / 433
Регистрация: 26.04.2015
Сообщений: 4,552
10.09.2015, 17:08 12
Bazaroff, Нужны другие варианты, как и говорил выше, но полагаю Вы хотели это, соответственно создать на рабочем столе папку papka, в которой текстовый файл 1.txt, в котором присутствует слово "строка", без кавычек и сохранено все, как текстовый файл так и бат в кодировке 866:
Windows Batch file
1
2
3
4
5
6
7
8
9
@echo on
SetLocal EnableExtensions
set "in=%Userprofile%\Desktop\papka\1.txt"
set "str=строка"
findstr "%str%" "%in%"
if "%str%"=="строка" echo Хорошо
if defined str echo Хорошо
if not "%str%"=="" echo Хорошо
pause
.
0
Bazaroff
54 / 50 / 2
Регистрация: 29.05.2011
Сообщений: 1,389
10.09.2015, 17:52  [ТС] 13
Всем большое спасибо за участие!
В принципе все. Разобрался. Пришлось чуточку изменить скрипт в связи с изменившимися условиями. Все работает!
0
10.09.2015, 17:52
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.09.2015, 17:52

Выполнение заданных команд в соответствии с выбором пользователя
Данный пакетный файл должен обеспечивать следующее: 1. Если в течении 5 секунд пользователь не...

NetCat: выполнение нескольких команд на UDP-сервере
Добрый день, подскажите как с помощью Bat можно запустить и выполнить несколько команд в...

Условное выполнение команд в зависимости от разрядности системы
Подскажите.Можно ли сделать. В батнике заданы две команды для Windows х32 и х64.Как сделать чтобы...


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

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

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