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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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
Kilyan



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Maza_Faka
Убирает конечно то все, но мне бы один слэш оставить! - я же вроде бы и выделил то что неоходимо! Понять бы как это еще работает!!!

Всего записей: 884 | Зарегистр. 04-09-2008 | Отправлено: 16:05 13-02-2009
Maza_Faka



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

Цитата:
мне бы один слэш оставить! - я же вроде бы и выделил то что неоходимо!

Сорри, попробуй так:

Код:
 
sed "s_\/.*\/_/_g" < test.txt > out.txt
 


Всего записей: 1420 | Зарегистр. 25-10-2006 | Отправлено: 08:07 14-02-2009
NvvLazyTiger



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

Цитата:
Вывод времени работы процедуры  
Если это не сложно отпишите как?

То, что ты нашёл - годится для батника "на скорую руку", запускаемого человеком.
Т.к. он привязан к формату выдачи переменной %time%, а этот формат зависит от настроек системы.
 
Альтернатива - использование тех или иных сторонних средств - утилиты или интерпретаторы, коих не счесть.  
 
Простейший путь - использование утилиты timethis.exe из "2000 Resource Kit". Вот как выглядит таймирование работы примитивного батника:
Цитата:
D:\ResKit2k>timethis.exe a.cmd
 
TimeThis :  Command Line :  a.cmd
TimeThis :    Start Time :  Sat Feb 14 22:00:04 2009
 
D:\ResKit2k>dir  1>nul
 
TimeThis :  Command Line :  a.cmd
TimeThis :    Start Time :  Sat Feb 14 22:00:04 2009
TimeThis :      End Time :  Sat Feb 14 22:00:04 2009
TimeThis :  Elapsed Time :  00:00:00.030

Всего записей: 244 | Зарегистр. 14-02-2009 | Отправлено: 15:02 14-02-2009
zzxx1488

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
вот где-то пролетало, сохранил на скорую руку
 
@echo off
setlocal
for /f "tokens=1-4 delims=:," %%a in ('echo %time%') do call :setTime start %%a %%b %%c %%d
:: ЗДЕСЬ ТВОЙ КОД
:: Вместо строчки ping-a
:: можно написать "call yourBatchFile.cmd"
 
call runme.bat
 
:: КОНЕЦ ТВОЕГО КОДА
for /f "tokens=1-4 delims=:," %%a in ('echo %time%') do call :setTime finish %%a %%b %%c %%d
call :showTime
goto :EOF
:setTime
set "%1Time=%2:%3:%4,%5"
set "t=%5"
set "s=%4"
set "m=%3"
set "h=%2"
 
if "%t:~0,1%"=="0" set "t=%t:~1%"
if "%s:~0,1%"=="0" set "s=%s:~1%"
if "%m:~0,1%"=="0" set "m=%m:~1%"
if "%h:~0,1%"=="0" set "h=%h:~1%"
 
set "tt=%t%"
set /a "ss=s * 100"
set /a "mm=m * 6000"
set /a "hh=h * 360000"
set /a "%1=hh+mm+ss+tt"
 
goto :EOF
:showTime
set /a "dif=%finish%-%start%"
set /a "difHH=dif / 360000"
set /a "difRem=dif %% 360000"
set /a "difMM=difRem / 6000"
set /a "difRem=difRem %% 6000"
set /a "difSS=difRem / 100"
set /a difTT=difRem %% 100"
set "difference=%difHH%:%difMM%:%difSS%,%difTT%"
echo start = %StartTime%
echo finish = %FinishTime%
echo Time taken : %difference%  
pause

Всего записей: 62 | Зарегистр. 04-10-2008 | Отправлено: 16:19 14-02-2009
Kilyan



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

Цитата:
Сорри, попробуй так:  
 
Код:  
sed "s_\/.*\/_/_g" < test.txt > out.txt  
 

а нет ли какого нить описания на русском? а то что то с доками которые идут с ним - не понять!

Всего записей: 884 | Зарегистр. 04-09-2008 | Отправлено: 17:35 14-02-2009
lorents



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
не подскажите как мне через командную строку соединить два html-файла?
и еще получится ли это с pdf и doc файлами?

Всего записей: 3291 | Зарегистр. 30-12-2007 | Отправлено: 13:01 15-02-2009 | Исправлено: lorents, 13:02 15-02-2009
Smitis



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

Цитата:
не подскажите как мне через командную строку соединить два html-файла?  
и еще получится ли это с pdf и doc файлами?

Кроспостинг запрещён правилами (или как там правильно называется дублирование постов в разных темах).
 
Добавлено:
An0xiety

Цитата:
1) большая просьба, можете привести пример, как под вин. нужно указать параметр игнора регистра?  

sed s/123/456/gi New_file.txt  
 
Добавлено:
Kilyan

Цитата:
а нет ли какого нить описания на русском? а то что то с доками которые идут с ним - не понять!

http://www.citforum.ru/operating_systems/articles/sed_awk.shtml
http://www.csa.ru/CSA/tutor/sed/index.htmr
http://www.opennet.ru/base/dev/sed1line.txt.html

----------
Разум когда-нибудь победит

Всего записей: 2409 | Зарегистр. 09-02-2003 | Отправлено: 15:53 15-02-2009
lorents



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Smitis
простите, сам не знаю зачем я дважды написал в смежных темах

Всего записей: 3291 | Зарегистр. 30-12-2007 | Отправлено: 16:41 15-02-2009 | Исправлено: lorents, 16:47 15-02-2009
adam264

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Помогите пожалуйста написать батник чтобы он читал данные из текстового файла:
 
   27.270: Ch(3):sHB(2.28,2.27,2.28,2.27,0)
   27.271: Ch(2):sHB(2.28,2.28,2.28,0.00,0)
   28.094: 23:01:37 Player Nick connected (id=3165452)
   28.934: Ch(3):sInst(3.94,3.94,1.66,1.66,0)
   34.624: Ch(4):uRTT(0.53,2,903,616098,614866,1.23)
   34.627: Ch(3):st(31,43,0,43,0,0,0,3,4/0,0,0.25,5/0,1,0.25,4,0)
   34.650: Ch(2):st(30,42,0,42,1,1,0,3,5/0,0,0.27,4/0,0,0.27,5,0)
   34.656: 23:01:43 Nick uses modified data file - Merged\00007mc_vojakw2.paa
   34.656: 23:01:43 Nick uses modified data file - Merged\00001&krovi4.paa
   36.187: Ch(4):sHB(2.18,1.56,1.21,0.00,0)
   36.544: Ch(3):sInst(4.50,4.50,2.17,2.17,0)
   
Нужно по условию если встречается фраза "uses modified data file -" взять впереди стоящий от неё ник, который может содержать различные символы, включая пробелы, но исключая двоеточие, найти его "id" выше по тексту и это число занести в буфер обмена.

Всего записей: 23 | Зарегистр. 15-02-2009 | Отправлено: 18:58 15-02-2009 | Исправлено: adam264, 00:12 16-02-2009
Studio13 OutlaW



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
01MDM
А как можно выставить шрифт такой?

Всего записей: 40 | Зарегистр. 04-02-2009 | Отправлено: 23:00 15-02-2009
Elroir



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


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

Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 14:50 16-02-2009
Studio13 OutlaW



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Elroir
Если запустить батник на другом компе, будет такой же шрифт?

Всего записей: 40 | Зарегистр. 04-02-2009 | Отправлено: 18:46 16-02-2009
Elroir



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Studio13 OutlaW
Нет. Шрифт устанавливается для системы, а не для батника. По умолчанию (если я не ошибаюсь) в WinXP, для консоли стоит именно этот шрифт.

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

Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 20:18 16-02-2009
Studio13 OutlaW



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Elroir
Благодарю за информацию....

Всего записей: 40 | Зарегистр. 04-02-2009 | Отправлено: 21:20 16-02-2009
An0xiety

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Smitis
Спасибо огромнейшие! Работает!

Цитата:
1) большая просьба, можете привести пример, как под вин. нужно указать параметр игнора регистра?  

Код:
sed s/123/456/gi New_file.txt

 

 
 
А все таки, как же побороть 2-й вопрос, с помощью sed ?

Цитата:
2) можно ли читать из файла input.txt и после выполнения операций в этот же файл input.txt  и записать?

Всего записей: 25 | Зарегистр. 16-02-2008 | Отправлено: 21:43 16-02-2009
01MDM



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

Цитата:
2) можно ли читать из файла input.txt и после выполнения операций в этот же файл input.txt  и записать?  

 

Код:
 
sed -i "s/123/456/g" input.txt
 


Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 22:06 16-02-2009
An0xiety

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
01MDM
 
Есть файл input.txt, в нем записано одно слово:

Код:
FALSE

По-идее для замены в этом же файле слова FALSE на true, надо установить ключ -i и это должно выглядить так:

Код:
sed -i "s/false/true/gi" input.txt

но после выполнения, вылетает ошибка, что такого ключа нет:

Цитата:
sed -i "s/false/true/gi" input.txt
sed.exe: invalid option -- i
Usage: sed.exe [OPTION]... {script-only-if-no-other-script} [input-file]...
 
  -n, --quiet, --silent
                 suppress automatic printing of pattern space
  -e script, --expression=script
                 add the script to the commands to be executed
  -f script-file, --file=script-file
                 add the contents of script-file to the commands to be executed
  -l N, --line-length=N
                 specify the desired line-wrap length for the `l' command
  -u, --unbuffered
 
      --help     display this help and exit
  -V, --version  output version information and exit
 
If no -e, --expression, -f, or --file option is given, then the first
non-option argument is taken as the sed script to interpret.  All
remaining arguments are names of input files; if no input files are
specified, then the standard input is read.

 
Версия sed 3.0.28 для windows

Всего записей: 25 | Зарегистр. 16-02-2008 | Отправлено: 23:16 16-02-2009 | Исправлено: An0xiety, 23:20 16-02-2009
adam264

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Хочу понемногу осваивать командный язык Windows на примере поставленной задачи. Если не трудно, помогите разобраться.
 
Вообще, батником реально мониторить лог файлы на предмет появления набора символов?

Всего записей: 23 | Зарегистр. 15-02-2009 | Отправлено: 00:26 17-02-2009
z3r



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Необходимо архивировать раз в неделю одну папку внутри которой еще кучка. С архивацией думаю разберусь. ВинРар в консоли работает
Вобщем к примеру папка CLients
в которой Vasya,Petya,Mitya как бы мне после архивации удалить все заархивированные файлы но оставить сами папки. Количество папок всегда меняется добавляются новые.

Всего записей: 91 | Зарегистр. 29-03-2007 | Отправлено: 02:52 17-02-2009
01MDM



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

Цитата:
Версия sed 3.0.28 для windows

 
У меня 4.1.5. - но не советую из-за того, что после обработки файла, символ конца строки конвертируется в юникс стандарт.
 
Попробуй с временным файлом, потому что по сути дела так все и происходит:

Код:
 
sed "s/false/true/gi" input.txt 1>input.tmp && move /y input.tmp input.txt
 

 
Или, если в операции поиска-замены не используются регулярные выражения, можно воспользоваться утилитой gsar.exe
 
http://sourceforge.net/project/showfiles.php?group_id=23617
 

Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 05:29 17-02-2009 | Исправлено: 01MDM, 05:34 17-02-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 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