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

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

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

Widok (10-03-2009 12:39): Лимит страниц. Продолжаем здесь.  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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 102 103 104 105 106 107 108

   

Widok



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

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

Всего записей: 24190 | Зарегистр. 07-04-2002 | Отправлено: 12:08 19-11-2007 | Исправлено: Dmitriy05, 22:49 13-04-2008
XXXXL



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Здравствуйте ребята!
При запуске батника нужно заменить десятую строку в rip.txt на ту, что предварительно прописана для этого в батнике.  
Спасибо!

Всего записей: 286 | Зарегистр. 16-05-2007 | Отправлено: 11:54 14-06-2008
01MDM



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

Код:
 
@echo off
setlocal
set newString=Новая строка
sed -i "10 s/.*/%newString%/g" rip.txt
 


Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 12:49 14-06-2008
XXXXL



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

Цитата:
Sed устроит?

конечно  
только почему то он не переписывает rip.txt а саздаёт файл без раширения sedDOSSUX и в нём уже переписывая 10 строка.
 
 

Всего записей: 286 | Зарегистр. 16-05-2007 | Отправлено: 13:23 14-06-2008
Elroir



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
XXXXL
Используй sed версии 4.1.5 - http://gnuwin32.sourceforge.net/packages/sed.htm

----------
"В интернете есть все, но не всегда"

Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 13:33 14-06-2008
01MDM



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
XXXXL
 
http://gnuwin32.sourceforge.net/packages.html
 
У меня отсюда. Недавно обсуждали. Это sed еще тянет пару dll, но более корректен в работе.
 
Но можно исправить батник
 

Код:
 
@echo off
setlocal
set newString=Новая строка
sed "10 s/.*/%newString%/g" rip.txt 1>rip.tmp
move /y rip.tmp rip.txt  
 

 
 
 

Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 13:43 14-06-2008
XXXXL



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

Цитата:
Но можно исправить батник

вот этот бат как раз то, что мне и нужно было
Спасибо!

Всего записей: 286 | Зарегистр. 16-05-2007 | Отправлено: 16:27 14-06-2008
mrszorg

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Всем здравствуйте!
Нужен батник, с помощью которого запускается прога.
Прога может запускаться в двух вариантах (назовем их 1 и 2 или Light и Full)
Так вот, в начале надо спросить у пользователя, как запускать будем? В легком режиме или полном (ну или там 1 или 2).
То есть чтобы пользователь отвечая нажал на клаву и выбрал вариант сам, причем, если ничего не выбрал, то чтобы по умолчанию запускался режим 1 (Light) - облегченный вариант.
Диалог был ну что-то типа этого:
 
Для продолжения выберите вариант 1 или 2: [1]
 
И тыкнув ENTER (или нажав 1) запуск варианта 1
Если нажал - 2 запуск во 2 варианте
Если нажмет чего-то не то, снова спросить
 
начал было, но споткнулся со значением по умолчанию
 
@echo off
set /p var=Enter var?
if %var%==1 goto light
if %var%==2 goto full
 
:light
echo you enter %numbe%
тут запускаем прогу
exit
 
:full
echo Выбран FULL
тут запускаем прогу

Всего записей: 6 | Зарегистр. 19-01-2008 | Отправлено: 16:59 14-06-2008
Elroir



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

Код:
 
set /p var=Enter var?
if "%var%"=="" goto light
if %var%==1 goto light
if %var%==2 goto full
 


----------
"В интернете есть все, но не всегда"

Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 17:38 14-06-2008
mrszorg

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
2Elroir Точно! Все очевидное просто! Спасибо!

Код:
 
@echo off
:err
set var=1
set /p var=Enter var 1 or 2: [1]  
if "%var%"=="" goto light
if %var%==1 goto light
if %var%==2 goto full
if not %var%==1 goto err  
if not %var%==2 goto err
 
:light
echo you enter %var%
echo Light
pause
exit
 
:full
echo you enter %var%
echo Full
pause
 

Всего записей: 6 | Зарегистр. 19-01-2008 | Отправлено: 18:04 14-06-2008 | Исправлено: mrszorg, 18:42 14-06-2008
Elroir



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

Цитата:
 
if not %var%==1 goto err  
if not %var%==2 goto err  
 
 
можно просто поставить

Код:
goto err

Если батник дошел до этой строчки, значит пользователь точно ввел не 1 и не 2.

----------
"В интернете есть все, но не всегда"

Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 19:04 14-06-2008
Ex0dus



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

Цитата:
Что выдают следующие команды:  

можно немного разьяснить?

Всего записей: 352 | Зарегистр. 15-05-2005 | Отправлено: 01:11 16-06-2008
Elroir



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

Цитата:
можно немного разьяснить?

В командной строке (Start->Run->cmd) запусти одну за другой обе эти команды (скопируй и нажми Enter) и выложи здесь результат их исполнения. Мне нужно знать, в каком формате у тебя на компьютере выдаются дата и время

----------
"В интернете есть все, но не всегда"

Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 01:22 16-06-2008 | Исправлено: Elroir, 03:22 16-06-2008
Ex0dus



Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
C:\Documents and Settings\Pasha>echo %date%
16.06.2008
 
C:\Documents and Settings\Pasha>echo 1>1.tmp & for %a in (1.tmp) do @echo %~ta &
 del 1.tmp
16.06.2008 21:56
 
пожалуйста, как и просили

Всего записей: 352 | Зарегистр. 15-05-2005 | Отправлено: 22:57 16-06-2008
Nikitos2

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ребята, помогите написать батник для запуска приложения, т.к. сама в этом деле полный нуль (или ноль?...)  
Задача следующая. Есть каталог, C:\Exchange\, в него перидически  попадают файлы, с именем Str16062008120050.txt. Количество файлов неопределенное, т.е. могут быть, могут и не быть. Батник должен проверить наличие файлов по маске Str*.txt, и если такие (или такой) есть, то запустить приложение командой D:\Transport.exe -x(<здесь имя найденного файла>)  
Я пробую делать так:  
FOR %%i IN(C:\Exchange) DO IF EXIST %%C:\Exchange\Str*.txt SET par=%i //это, как я думаю, для того, чтобы сначала присвоить параметры для найденных файлов, для дальнейшего использоания  
а вот что и как дальше - лес дремучий...  
Заранее спасибо!

Всего записей: 7 | Зарегистр. 16-06-2008 | Отправлено: 06:13 17-06-2008
01MDM



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Nikitos2
 
Дублировать необязательно. "Так как отвечать будут одни и теже" (с)

Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 09:13 17-06-2008
Nikitos2

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Прошу прощения, ошибка вышла - впервые на этом форуме

Всего записей: 7 | Зарегистр. 16-06-2008 | Отправлено: 09:26 17-06-2008
Antdik



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Всем доброго дня
Возможно ли решить при помощи BAT файла следующую задачу
Есть папка с текстовыми файлами логов log-a.lln и log-s.fln (n от 1 до хз)
Необходимо в файлах log-a.lln удалить первые 4 строки и сохранить под именем log-an.txt
в файлах log-s.fln удалить первые 2 цифры 1 строки и сохранить под именем log-sn.txt
Буду благодарен за любую помощь

Всего записей: 96 | Зарегистр. 11-01-2006 | Отправлено: 14:43 17-06-2008
01MDM



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Antdik
 
Попробуй, C:\Logs - папка с логами

Код:
 
@echo off
setlocal
 
pushd "C:\Logs"
 
for %%i in (log-*) do (
    echo %%i | findstr "log-s.*" 1>nul && call:s %%i
    echo %%i | findstr "log-a.*" 1>nul && call:a %%i
)
popd
goto:eof
 
:s
set log-s=%1
set log-s=%log-s:.fl=%.txt
 
set /p line=<%1
set line=%line:~2%
 
echo %line% 1>%log-s%
more +1 %1 1>>%log-s%
goto:eof
 
:a
set log-a=%1
set log-a=%log-a:.ll=%.txt
 
more +4 %1 1>%log-a%
 


Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 15:53 17-06-2008 | Исправлено: 01MDM, 15:58 17-06-2008
Antdik



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Огромное спасибо! то что нужно

Всего записей: 96 | Зарегистр. 11-01-2006 | Отправлено: 16:28 17-06-2008
Dis74



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
помогите, нужна консольная програмка или скрипт чтобы отправлять в окно или процессу нажатие кнопок.
 
т.е. например:
SendKeys -process:miranda.exe -k:Ctrl1
SendKeys -window:Admin -k:AltF4
SendKeys -handle:0x5205BA  -k:ShiftCtrl3
 
нашел упоминание о Sendkeys, но от куда скачать не могу найти. все ссылки битые.

Всего записей: 166 | Зарегистр. 12-11-2007 | Отправлено: 16:48 17-06-2008
   

Страницы: 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 102 103 104 105 106 107 108

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


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

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

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru