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

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

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

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

 Согласен. Но вроде с большой долей вероятности, если ехе стартовал без ошибок, то очень может быть он нормальный.

Цитата:
С другой стороны, если скачиваемый файл заведомо исправен и повреждение происходит уже в процессе скачивания, то и отслеживать/анализировать нужно именно этот процесс (лог качалки).

Наверное ты прав, придется анализировать лог wget

Всего записей: 22 | Зарегистр. 01-12-2008 | Отправлено: 11:44 09-05-2009 | Исправлено: vchobo, 11:47 09-05-2009
NvvLazyTiger



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
vchobo, к слову. В описанном случае можно поступить проще - сравнивать размер свеже скачанного и старого файлов. Если новый больше - ок, иначе - скачивать ешё раз. Этот способ менее надёжен, но, возможно, подойдёт.

Всего записей: 257 | Зарегистр. 14-02-2009 | Отправлено: 01:39 10-05-2009
anachrom

Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Подскажите как сделать что бы в определенный день недели выполнялся определенный код.
Смысл того, что должно получиться. Есть ежедневный BackUp. Нужно, чтобы в воскресенье все что было забэкапено за неделю скидывалось в папочку LastWeek, а то что делается в течении недели хранилось в папке Week.
Мой bat на данный момент выглядит так:
@echo off
echo %TIME%
md "%DATE%"
cd "%DATE%"
xcopy "Путь" /s /f /c > backup.log

Всего записей: 179 | Зарегистр. 18-11-2008 | Отправлено: 10:10 10-05-2009
Cosmogor



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
romrub
 
Спасибо! Работает как часы.
 
Есть ещё маленькии вопросик.
 Код:
 
FOR %%I IN ("sleep.exe" "In.bat") DO IF EXIST ("%%I:\sleep.exe" "%%I:\In.bat") ELSE EXIT
 
Нужно проверить на наличие файлы ("sleep.exe" и "In.bat")
Если есть все файлы , то COPY (скопировать их)
а если нету хотя бы одного файла, то EXIT
У меня никак не получается, помогите пжл.
Или дайте ссылку на толковую справку функции FOR
Встроенную справку не могу понять

Всего записей: 230 | Зарегистр. 22-04-2009 | Отправлено: 11:13 10-05-2009
slech



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

Всего записей: 4893 | Зарегистр. 10-11-2004 | Отправлено: 11:19 10-05-2009
vchobo

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

Цитата:
всем привет.
как почучить дату за вчера ?
спасибо.

 
http://forum.ru-board.com/topic.cgi?forum=62&topic=11825&start=0&limit=1&m=4#1

Всего записей: 22 | Зарегистр. 01-12-2008 | Отправлено: 11:27 10-05-2009
Maza_Faka



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

Цитата:
проверить на наличие файлы ("sleep.exe" и "In.bat")

Один из вариантов:

Код:
 
@Echo Off
 
If Exist sleep.exe If Exist In.bat (
   Copy sleep.exe d:\
   Copy In.bat d:\
)
 

 
anachrom
Про планировщик заданий слыхали?

Всего записей: 1420 | Зарегистр. 25-10-2006 | Отправлено: 12:13 10-05-2009
vchobo

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Народ! Подскажите, где посмотреть обработку текстовых переменных (триммирование, подстрока и т.п.)?

Всего записей: 22 | Зарегистр. 01-12-2008 | Отправлено: 12:20 10-05-2009
Cosmogor



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Maza_Faka
 
Спасибо, как всегда твои скрипты
работают хорошо.

Всего записей: 230 | Зарегистр. 22-04-2009 | Отправлено: 13:16 10-05-2009
Maza_Faka



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
vchobo
А, что конкретно интересует? Выложите примеры :)

Всего записей: 1420 | Зарегистр. 25-10-2006 | Отправлено: 14:58 10-05-2009
slech



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
vchobo
пробую Использование даты на день раньше чем сегодня (учитываются високосные годы)
получаю вот что

Цитата:
 
10
05
0-1
10-05-0-1
 

сегодня 2009-05-10
должен получить 2009-05-09
что нетак ?
 
Добавлено:
Использование даты на день раньше чем сегодня -  

Цитата:
 
( was unexpected at this time.
 

Всего записей: 4893 | Зарегистр. 10-11-2004 | Отправлено: 15:16 10-05-2009 | Исправлено: slech, 15:22 10-05-2009
vchobo

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

Цитата:

Цитата:
 
10
05
0-1
10-05-0-1
 

сегодня 2009-05-10
должен получить 2009-05-09
что нетак ?  

Лично у меня с тем кодом получается:
2009
05
09
2009-05-09

Всего записей: 22 | Зарегистр. 01-12-2008 | Отправлено: 15:32 10-05-2009 | Исправлено: vchobo, 15:35 10-05-2009
Cosmogor



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подскажите как сделать ярлык на
рабочем столе? С помощью батника.
 Например для файла C:\1.txt

Всего записей: 230 | Зарегистр. 22-04-2009 | Отправлено: 15:32 10-05-2009
romrub

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

Цитата:
 
FOR %%I IN ("sleep.exe" "In.bat") DO IF EXIST ("%%I:\sleep.exe" "%%I:\In.bat") ELSE EXIT
 Нужно проверить на наличие файлы ("sleep.exe" и "In.bat")
Если есть все файлы , то COPY (скопировать их)
а если нету хотя бы одного файла, то EXIT
 

вот так можно:

Код:
FOR %%I IN ("sleep.exe" "In.bat") DO IF NOT EXIST %%I GOTO :Next
REM если есть все файлы из списка, здесь делать то, что надо
COPY sleep.exe d:\
COPY In.bat d:\  
GOTO :Next
 
:Next
 

 

Цитата:
anachrom
Подскажите как сделать что бы в определенный день недели выполнялся определенный код.  

использовать встроенный планировщик 'schtasks.exe' (или его прежний аналог 'at.exe')
а если нужно в батнике проверить день недели, то тут сложнее..
 

Цитата:
Cosmogor
Или дайте ссылку на толковую справку функции FOR
Встроенную справку не могу понять


Цитата:
vchobo
Народ! Подскажите, где посмотреть обработку текстовых переменных (триммирование, подстрока и т.п.)?  

 
эх, святой грааль можно сказать отдаю ...
в папке %systemroot%\help файлик 'ntcmds.chm'
про обраобтку строк есть в теме про команды SET и FOR

Всего записей: 25 | Зарегистр. 18-03-2009 | Отправлено: 15:42 10-05-2009 | Исправлено: romrub, 15:44 10-05-2009
slech



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
vchobo
пока жи вывод по Date
вот что у меня

Цитата:
 
The current date is: Sun 05/10/2009
Enter the new date: (mm-dd-yy)
 

очень похоже на зависимость от региональных настроек.
 
тогда такой момент возникает.
можно ли имя файлы задать из текстового файла ?
так несрабатывает

Цитата:
 
rename today_date.bak | type name.txt
 

name.txt=yesterday_date.bak
получаю ошибку
The syntax of the command is incorrect.
yesterday_date.bak

Всего записей: 4893 | Зарегистр. 10-11-2004 | Отправлено: 15:44 10-05-2009
mp3exchanger



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подскажите, пожалуйста, как сгенерировать батником строку длиной 32 символа, состоящую из случайных первых шести букв и любого числа и не обязательно, чтобы в сгенерированной строке были именно все 10 цифр и все шесть букв.
Пример:
8BCC837A01868AE4F0159E36EDBE624A

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



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
slech, vchobo
 
Узнаем текущий день недели:

Код:
 
wmic path win32_LocalTime get DayOfWeek
 

 

Код:
 
0<name.txt set /p "newname="
ren today_date.bak "%newname%"
 


Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 16:48 10-05-2009
Cosmogor



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
romrub
 
Спасибо!
Вот блин, я и не знал, что есть такой файлик. (ntcmds.chm)

Всего записей: 230 | Зарегистр. 22-04-2009 | Отправлено: 16:57 10-05-2009
01MDM



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

Код:
 
@echo off
setlocal
 
for /l  %%i in (1,1,32) do (
    for %%i in (a,b,c,d,e,f,0,1,2,3,4,5,6,7,8,9) do call:set %%i
    for /f "tokens=3 delims=_=" %%i in ('set sign_') do set "str=%%i"          
    call:string
)
 
echo %string%
 
goto:eof
 
:set
set "sign_%random%=%1"
goto:eof
 
:string
set "string=%string%%str%"
for /f "tokens=1 delims==" %%i in ('set sign_') do set "%%i="
 


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



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
01MDM, к сожалению сразу не указал, но мне бы желательно, чтобы строка была с пробелами через каждые 2 символа и в конце строки стандартная фраза (одинаковая всегда).

Всего записей: 518 | Зарегистр. 24-02-2003 | Отправлено: 17:50 10-05-2009 | Исправлено: mp3exchanger, 11:30 12-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.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru