Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Программы » Командная строка, батники, сценарии (bat, cmd)

Модерирует : gyra, Maz

Widok (03-03-2010 16:29): Лимит страниц. Продолжаем здесь.  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101

   

Widok



Moderator-Следопыт
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Командная строка, батники\сценарии (bat, cmd)
(часть 1) (часть 2)
Вопросы, задачи и их решения по работе с командной строкой, файлами, а также сопутствующие ссылки.

 
Важно: копируя батник через буфер обмена из форума не забывайте удалять пробелы в конце каждой строки, т.к. в некоторых случаях из-за этого программа будет работать неправильно!!!
 
Примечание: Большие куски кода заключайте в тэг [more]  
 
Смежные темы:
В помощь системному администратору » Автоматизация администрирования
Microsoft Windows » Задачи на bat-файлах 5
 
Полезные ссылки:
· Cmd. Описание от разработчиков
· Урок bat-аники (для начинающих)
· Курс лекций для начинающих. Полезно и просто описано
· Набор GNU утилит для win32
· Пакет утилит для организации интерфейса в bat-файлах
· Использование ansi.sys
· cmdow — изменение параметров и видимости дос-окна
· blat — отправка почты из консоли
· Справка по командам в виде Html
· Команды RunDll32
· Quick Batch File Compiler - Позволяет превратить ваш батник в независимое приложение
· Пример - получение и обработка списка пользователей
· Уильям Станек - Командная строка Microsoft Windows (вплоть до w2k3)
· Простой способ получать текущую дату всегда в одном формате (не зависит от языков и настроек)
· Переход из 32-битной версии cmd.exe в 64-битную

Всего записей: 24190 | Зарегистр. 07-04-2002 | Отправлено: 12:38 10-03-2009 | Исправлено: TechnicsKuzya, 13:54 27-12-2009
basstard

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mikhaluch

Код:
for %%j in (miha,petya,vasya) do (
    if /i {%computername%}=={%%j} (ping yandex.ru) else (ping google.ru)
)

Всего записей: 58 | Зарегистр. 05-08-2008 | Отправлено: 13:19 08-05-2009
gjf



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
igor_andreev
Да, действительно, всё упрощается до:
@echo off
wget.exe -N -r --tries=3 http://emulepawcio.sourceforge.net/nieuwe_site/Ipfilter_fakes/ipfilter.dat -O ipfilter.dat
copy /Y ipfilter.dat "%userprofile%\Application Data\uTorrent\ipfilter.dat"

 
Спасибо за совет!

----------
Тут могла бы быть Ваша реклама... или эпитафия

Всего записей: 10934 | Зарегистр. 14-03-2007 | Отправлено: 13:44 08-05-2009
vmcho

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Народ!
Подскажите, как решить проблему:
1. в нерабочее время с помощью wget закачивается файл .exe
2. надо в автоматическом режиме проверить, запускается он или битый
3. если запускается, заменить им существующий
Проблема по п. 2, пробовал
start  хххххх.ехе - не возвращает ощибку, если файл corrupted
Подскажите, может кто знает команду или утилиту командной строки для проверки ехешников на "запускаемость".

Всего записей: 5 | Зарегистр. 09-02-2009 | Отправлено: 15:21 08-05-2009 | Исправлено: vmcho, 15:23 08-05-2009
mp3exchanger



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Буду благодарен тому, кто поможет создать такой батник...
 
Имею:
prog.exe и test.txt в одном каталоге. В батнике запускается prog.exe, параметром является первая строка файла test.txt, после обработки prog.exe добавляет результат (либо ERROR, либо OK) в отдельный текстовый файл. Это уже есть и работает красиво.
 
Необходимо:
После каждой обработки (и вывода результата) необходимо удалить первую строку в test.txt, чтобы при очередном запуске prog.exe параметром для неё стала уже вторая строка. Всё это надо зациклить, пока не закончатся параметры (т.е. строки) в test.txt
 
Очень надеюсь, что это возможно сделать, поскольку сейчас мне приходиться довольствоваться макросом в Far для этих действий.

Всего записей: 518 | Зарегистр. 24-02-2003 | Отправлено: 16:09 08-05-2009
vmcho

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Необходимо:
После каждой обработки (и вывода результата) необходимо удалить первую строку в test.txt, чтобы при очередном запуске prog.exe параметром для неё стала уже вторая строка. Всё это надо зациклить, пока не закончатся параметры (т.е. строки) в test.txt  

А зачам удалять строки?
Пишешь цикл обрабоки тхт файла аля:
FOR /F "tokens=*" %%i in (твой.txt) do (START prog.exe %%i)
 

Всего записей: 5 | Зарегистр. 09-02-2009 | Отправлено: 16:44 08-05-2009 | Исправлено: vmcho, 16:45 08-05-2009
mp3exchanger



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Удалять надо, поскольку prog.exe ВСЕГДА автоматом цепляет первую строку в качестве параметра и никакой батник ей не указ

Всего записей: 518 | Зарегистр. 24-02-2003 | Отправлено: 16:58 08-05-2009
vmcho

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Удалять надо, поскольку prog.exe ВСЕГДА автоматом цепляет первую строку в качестве параметра и никакой батник ей не указ
 

Ну тогда может быть тем же циклом for читать во временный файл твой.TXT, начиная со второй строки, а затем заменять его на временный и т.д. по циклу
 
Добавлено:

Цитата:
Удалять надо, поскольку prog.exe ВСЕГДА автоматом цепляет первую строку в качестве параметра и никакой батник ей не указ  

Или по циклу динамически создавать твой.txt файл из одной строки шаблона

Всего записей: 5 | Зарегистр. 09-02-2009 | Отправлено: 17:46 08-05-2009 | Исправлено: vmcho, 17:47 08-05-2009
mp3exchanger



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Не подходит, т.к. test.txt довольно "тяжёлый" и плодить временные файлы на его основе - издевательство над хардом... хотя, если предложишь готовое решение - готов попробовать
шаблон тоже не подходит, так как каждый параметр уникален.

Всего записей: 518 | Зарегистр. 24-02-2003 | Отправлено: 17:56 08-05-2009 | Исправлено: mp3exchanger, 17:58 08-05-2009
01MDM



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
mp3exchanger
Добавь в свой батник:

Код:
 
more +1 test.txt 1>test.tmp
move test.tmp test.txt
 

При каждом запуске в файле test.txt будет на одну строчку меньше.

Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 17:57 08-05-2009
mp3exchanger



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
01MDM, да, вот это, похоже, то что нужно. Отпишусь чуть позже.

Всего записей: 518 | Зарегистр. 24-02-2003 | Отправлено: 18:01 08-05-2009
vmcho

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
 
more +1 test.txt 1>test.tmp
move test.tmp test.txt
 

5 баллов!!!
Я чайник и не знал, что таким образом можно с помощью команды more +n управлять выводом
Может и по моему посту что подскажешь?  

Всего записей: 5 | Зарегистр. 09-02-2009 | Отправлено: 18:12 08-05-2009
mp3exchanger



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
01MDM, погонял, подходит.
Помоги, пожалуйста, теперь всё ЭТО правильно зациклить, чтобы выполнение батника прерывалось, когда test.txt уже пустой.

Код:
 
prog.exe d:\temp >>_output
more +1 test.txt 1>test.tmp  
move test.tmp test.txt  
 

Всего записей: 518 | Зарегистр. 24-02-2003 | Отправлено: 19:02 08-05-2009
01MDM



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
vmcho

Цитата:
Может и по моему посту что подскажешь?  

Errorlevel все равно должен возвращаться, если не удалось запустить файл, то errorlevel будет отличным от "0":

Код:
 
start prog.exe
if %errorlevel%==0 move /y prog.exe %DESTDIR%
 

Или попробуй так:

Код:
 
start prog.exe && move /y prog.exe %DESTDIR%  
 

 
Добавлено:
mp3exchanger

Код:
 
@echo off
:exec
prog.exe d:\temp >>_output
more +1 test.txt 1>test.tmp
move test.tmp test.txt
for %%i in (test.txt) do if not %%~zi==0 goto:exec
 

 

Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 19:11 08-05-2009
mp3exchanger



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Спасибо тебе большое, 01MDM

Всего записей: 518 | Зарегистр. 24-02-2003 | Отправлено: 19:31 08-05-2009 | Исправлено: mp3exchanger, 19:34 08-05-2009
Road Runner J



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
При запуске  chkdsk /F  необходимо выбрать Y или N чтобы продолжить или не продолжить выполнение, а как такое  [Y(да)/N(нет)]  организовать в своём скрипте?

Всего записей: 172 | Зарегистр. 01-06-2006 | Отправлено: 21:54 08-05-2009
HaK1R



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Road Runner J
если ДА то

Код:
echo Y|chkdsk /F

и  

Код:
echo N|chkdsk /F

если НЕТ

Всего записей: 136 | Зарегистр. 04-05-2009 | Отправлено: 22:25 08-05-2009 | Исправлено: HaK1R, 22:29 08-05-2009
vchobo

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
01MDM

Цитата:
 Errorlevel все равно должен возвращаться, если не удалось запустить файл, то errorlevel будет отличным от "0":  

 
У меня не получается
Приложение видовса при запуске выдает код ошиби всегда 0, не зависимо от того, нормальный ехешник или битый
Хотя в виндовом окне выдается сообщение об ошибке, что файл corrupted  

Всего записей: 22 | Зарегистр. 01-12-2008 | Отправлено: 23:11 08-05-2009 | Исправлено: vchobo, 23:16 08-05-2009
HaK1R



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
vchobo
А у тебя exe-шник битый, это в чем проявляется?
если ехе-шник битый то он не  будет запускаться, и тогда errorlevel будет равен 1, а если он у тебя 0, то exe-шник запустился.

Всего записей: 136 | Зарегистр. 04-05-2009 | Отправлено: 23:21 08-05-2009
vchobo

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
HaK1R
 

Цитата:
 Newbie    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модераторуvchobo
А у тебя exe-шник битый, это в чем проявляется?
если ехе-шник битый то он не  будет запускаться, и тогда errorlevel будет равен 1, а если он у тебя 0, то exe-шник запустился.  

Ну это, скажем, по ночам свежий бесплатный антивирусный сканер KAV7 у меня качается, бывает, что не до конца скачивается, из 40 м только 5-10. Запускаю его для проверки работоспособности, в виндовом окне проскакивает, что файл corrapted, а %errorlevel% =0  

Код:
 
start xxxxx.exe
echo %errorlevel%
0
 

Всего записей: 22 | Зарегистр. 01-12-2008 | Отправлено: 23:29 08-05-2009 | Исправлено: vchobo, 23:49 08-05-2009
NvvLazyTiger



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
vchobo
Цитата:
Запускаю его для проверки работоспособности, в виндовом окне проскакивает, что файл corrapted, а %errorlevel% =0

Проверка целостности EXE его запуском - это как бы неправильно. Т.к. надёжный анализ поведения запущенного (в т.ч. и его выдачи) - задача весьма не тривиальная.
 
С другой стороны, если скачиваемый файл заведомо исправен и повреждение происходит уже в процессе скачивания, то и отслеживать/анализировать нужно именно этот процесс (лог качалки).

Всего записей: 242 | Зарегистр. 14-02-2009 | Отправлено: 05:23 09-05-2009
   

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101

Компьютерный форум Ru.Board » Компьютеры » Программы » Командная строка, батники, сценарии (bat, cmd)
Widok (03-03-2010 16:29): Лимит страниц. Продолжаем здесь.


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.Board
© Ru.Board 2000-2020

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru