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

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



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подскажите пожалуйста!
 
Есть задача: вытянуть из реестра значение параметра реестра
HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\Desktop
 
По умолчанию значение: "%USERPROFILE%\Рабочий стол"
 
Делаю так:
 
chcp 1251>NUL
FOR /f "usebackq tokens=1,2* skip=2 eol=;" %%a IN (`REG QUERY "HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" /v Desktop`) DO SET "Desktop_Path=%%c"
 
chcp 866>NUL
ECHO %Desktop_Path%
...
 
Как мне теперь получить полный путь?  
(Чтобы вместо %USERPROFILE% подставлялось "C:\Documents and Settings\USER_NAME")
 
 

Всего записей: 360 | Зарегистр. 18-01-2006 | Отправлено: 18:16 26-11-2009
01MDM



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
YoungBatman
Пробовал на XP и на 7-ке. Результат одинаков. Может я что-то не так делаю?
 
Да и не полная она, ничего не сказано про другие утилиты (не встроенные), по сути просто вывод "команда /?", набери в XP:

Код:
 
hh ntcmds.chm
 

Там гораздо больше информации, хоть штатная справка и не очень удобная.
 
 
Добавлено:
MishaEmS

Код:
 
@echo off
setlocal
chcp 1251 1>nul
 
set "regpath=HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders"
for /f "tokens=3*" %%i in ('reg query "%regpath%" /v Desktop') do set "desktop=%%i %%j"
 
 
for /f "tokens=*" %%i in ('echo %desktop%') do echo %%i
:: или
echo | echo %desktop%
 

Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 18:24 26-11-2009 | Исправлено: 01MDM, 18:49 26-11-2009
MishaEmS



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

Цитата:
for /f "tokens=*" %%i in ('echo %desktop%') do echo %%i
:: или
echo | echo %desktop%  

Спасибо! Работает!
 
Подскажите ещё, как удалить пробел в конце строки?
Т.е. проверить, если последний символ пробел, то удаляем его.

Всего записей: 360 | Зарегистр. 18-01-2006 | Отправлено: 21:24 26-11-2009
01MDM



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

Код:
 
.....
for /f "tokens=*" %%i in ('echo %desktop%') do set "desktop=%%i"
 
if "%desktop:~-1%"==" " set "desktop=%desktop:~0,-1%"
echo "%desktop%"
 


Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 21:37 26-11-2009
YoungBatman



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
/Офтопик/
01MDM
Я лишь скомпелировал хтмл-справку из шапки. На новизну не претендую, раз не надо, ну и ладно

Всего записей: 8 | Зарегистр. 01-10-2008 | Отправлено: 23:02 27-11-2009
Wilion

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Помогите пожалуйста. Имеется *.txt файл в котором находится словарь. Как скопировать из него только слова из семи букв в другой *.txt

Всего записей: 202 | Зарегистр. 24-08-2009 | Отправлено: 08:29 28-11-2009
01MDM



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Wilion
Какой формат файла? Если строчка - слово, то:

Код:
 
1>2.txt findstr "^.......$" 1.txt
 


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

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Спасибо большое! Всё получилось.

Всего записей: 202 | Зарегистр. 24-08-2009 | Отправлено: 13:00 28-11-2009
qosmio5

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Всем привет.  
 
Помогите написать bat-файл для изменения системного времени Windows на определенный промежуток. То есть, к примеру, перевести часы на 20 минут или 1 час.  
 
Спасибо большое.

Всего записей: 5 | Зарегистр. 28-11-2009 | Отправлено: 19:44 28-11-2009
01MDM



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

Код:
 
@echo off
setlocal
 
:: set time=08:09:59
set span=-20
 
for /f "tokens=1-3 delims=:," %%i in ("%time%") do set /a curtotalsec=((1%%i-100)*3600)+((1%%j-100)*60)+(1%%k-100)
 
set /a newtotalsec=curtotalsec+span*60
 
if %newtotalsec% lss 0 set /a newtotalsec+=86400
if %newtotalsec% gtr 86400 set /a newtotalsec-=86400
 
set /a h=newtotalsec/3600
set /a m=(newtotalsec-h*3600)/60
set /a s=newtotalsec-(h*3600+m*60)
 
echo %h%:%m%:%s%
:: time %h%:%m%:%s%  
 

Для проверки можно раскомментировать строчку: set time=08:09:59. И выставить любое время. Для использования удалить ее и "echo %h%:%m%:%s%" и раскомментировать последнюю.
 
В строке set span= задается временной промежуток в минутах (если минус переводим назад)
 

Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 21:28 28-11-2009 | Исправлено: 01MDM, 21:29 28-11-2009
vitrzn



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
(Возможно уже был такой вопрос, но я не нашел ответа ТУТ )
 
Как с помощью батника можно проверить наличие файлов (по маске) в локальной папке и если есть такие, то запустить Start.exe, а если нету файлов, то завершение батника

Всего записей: 1358 | Зарегистр. 28-10-2007 | Отправлено: 01:35 29-11-2009
01MDM



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

Код:
 
1>nul 2>&1 dir /b /a *.txt && start.exe || goto:eof
 


Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 11:41 29-11-2009
qosmio5

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

01MDM  - спасибо большое
 
Я попробовал сченарий, но у меня часы переводятся на 00:20 вне зависимости от текущего времени.
Может я что-то не так делаю?
 
Еще раз спасибо.

Всего записей: 5 | Зарегистр. 28-11-2009 | Отправлено: 12:32 29-11-2009
01MDM



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

Цитата:
Может я что-то не так делаю?  

Не знаю, у меня все нормально на Win-7

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

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
01MDM
 
Все нормально работает в конкретном временном промежутке. Но если например часы - в однозначных числах с 0-я до 9-и, все значения принимаются за ноль (00:00:00) и соответственно изменение времени рассчитывается с этого - 00:20 или 23:40.
 
Спасибо.  

Всего записей: 5 | Зарегистр. 28-11-2009 | Отправлено: 17:32 29-11-2009
01MDM



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

Код:
 
for /f "tokens=1-3 delims=:," %%i in ("%time: =0%") do ...  
 

Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 20:27 29-11-2009
qosmio5

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
01MDM
 
Спасибо огромное, все заработало.
 
thanks!

Всего записей: 5 | Зарегистр. 28-11-2009 | Отправлено: 00:50 30-11-2009
dskj

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

Всего записей: 23 | Зарегистр. 25-10-2009 | Отправлено: 14:46 30-11-2009
FGHGJGJSD22

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
как сделать чтоб из тхт файла у далялось заданное количество строк с конца ?
допустим тхт докум
 
привет
привет
ура  
6666
привет
 
из его надо удалить последние 2 строки допустим
6666
и
привет
 
чтоб оканчательный вид был таким
 
привет
привет
ура  
 
количество строк неизвесно и может менятся - тоесть надо прописать
чтоб просто удалялось опред кол строк...
 
подскажите плиз как сделать

Всего записей: 44 | Зарегистр. 09-07-2007 | Отправлено: 16:55 01-12-2009
GreG



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
All
 
помогите решить следующую задачу:
необходимо раз в месяц отправлять письмо на определенный адрес с определенным текстом который содержит число которое долно быть ежемесячно увеличено на рандомное значение от 150 до 200.

Всего записей: 1149 | Зарегистр. 22-10-2001 | Отправлено: 17:48 01-12-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