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

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

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

Widok (19-11-2007 12:08): лимит страниц. продолжаем здесь  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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 109 110 111 112 113 114 115 116 117 118

   

KLASS



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

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

Всего записей: 9734 | Зарегистр. 12-10-2001 | Отправлено: 04:28 24-09-2002 | Исправлено: Elroir, 19:35 11-09-2007
Elroir



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

Код:
 
@echo off
setlocal enabledelayedexpansion
chcp 1251>nul
set "count=1"
for /f "tokens=*" %%a in (bat.txt) do (
if !count!==1 echo Сумма %%a
if !count!==2 echo Итог %%a
if !count!==3 echo Итого %%a
set  /a "count+=1"
)
 

Ты хоть отпишись, все ли нормально с кодом, который я написал тебе в прошлый раз...
 
Accessor
Никогда такого не видел! А на каком-нибудь другом ключе пробовал?

Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 19:03 06-02-2007
miheenko



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Спасибо
 
Добавлено:
@echo off  
setlocal enabledelayedexpansion  
chcp 1251>nul  
set "count=1"  
for /f "tokens=*" %%a in (bat.txt) do (
if !count!==1 echo Сумма %%a
if !count!==2 echo Итог %%a
if !count!==3 echo Итого %%a
set /a "count+=1"
)>>bat2.txt
 
Вот так заработало.

Всего записей: 11 | Зарегистр. 29-01-2007 | Отправлено: 21:01 06-02-2007
miheenko



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
@Echo off
 
setlocal enabledelayedexpansion  
chcp 1251>nul  
 
rem Выборка нужной инфы, и запись ее в файл
for /F "skip=9 tokens=5,*" %%i in (d:\bat\m4020501.snt) do echo %%i | find ""|| echo %%i%%j >> bat1.txt
rem Добавление текста
set "count=1"  
for /f "tokens=*" %%a in (bat1.txt) do (
if !count!==1 echo Сумма %%a
if !count!==2 echo Итог %%a
if !count!==3 echo Итого %%a
set /a "count+=1"
)>>bat2.txt
 
rem Удаление файла
del bat1.txt
 
rem  конец
:end
Exit

Всего записей: 11 | Зарегистр. 29-01-2007 | Отправлено: 08:23 07-02-2007
Accessor



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

Цитата:
А на каком-нибудь другом ключе пробовал?

Да, на соседних разделах "Tips" и "WindowsUpdate" всё в порядке. Видимо проблема заключается в пробелах в имени раздела "User Shell Folders".
Короче, я выкрутился так:
reg query "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer" /v "Common Desktop" /s
немного кривовато, но для моего разового случая сойдёт

Всего записей: 2861 | Зарегистр. 31-10-2003 | Отправлено: 11:11 07-02-2007
miheenko



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Доброго дня.  
 Есть текст в столбик  
 
ход  
вода  
снег  
 
Надо его отформатировать так  
 
ход вода снег  
 
Как это сделать?  
 
 
Добавлено:  
у меня не получается.

Всего записей: 11 | Зарегистр. 29-01-2007 | Отправлено: 11:23 07-02-2007
Fraerok



Запрет на пост
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Привет!
Можно ли сделать такой батник, чтобы он:
1. смотрел цифру рядом с параметром "Frame(?)"
в ветке реестра [HKEY_CLASSES_ROOT\WRTE.Document.1\UID]
2. потом брал сегодняшнюю дату и умножал год на 365, номер месяца на 30 и скаладывал все это с сегодняшним числом (т.е. например сегодня 2007*365+30*2+8=732623)
3. и записывал все это в параметр, который был на 1. найден (например, [HKEY_CLASSES_ROOT\WRTE.Document.1\UID]
"Frame11"="@732623")

Всего записей: 1723 | Зарегистр. 11-05-2006 | Отправлено: 20:38 08-02-2007 | Исправлено: Fraerok, 20:39 08-02-2007
Zakkazak



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
miheenko
Вордом не пробовал, он же запросто заменит знаки абзаца на пробелы.

Всего записей: 995 | Зарегистр. 12-01-2005 | Отправлено: 21:14 08-02-2007
Elroir



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Fraerok
1. Какой формат у системной даты? (что выдает команда "echo %date%")
2. Зачем находить число после frame?
 
Добавлено:
3. Параметр frame** только один или там есть еще frame-ы?

Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 21:59 08-02-2007
Fraerok



Запрет на пост
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Elroir
1. 08.02.2007
2. Просто, насколько я понимаю эта цифра может быть разной. Но в принципе сама цифра-то не нужна, нужно только название этого параметра, а оно может отличаться цифрой)
3. Frame? только один.
 
P.s. Вообще этот параметр содержит дату инсталляции программы winrar и иногда необходимо её сбрасывать =) А цифра после Frame, я так понимаю, может быть разной у разных версий.

Всего записей: 1723 | Зарегистр. 11-05-2006 | Отправлено: 22:59 08-02-2007
Elroir



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Fraerok
ОК. Понятно. Тогда так:

Код:
 
@echo off
setlocal
for /f "usebackq tokens=1" %%a in (`"reg query HKCR\WRTE.Document.1\UID /s | find /i "frame""`) do set "frame=%%a"
set "cdate=%date%"
set "cday=%cdate:~0,2%"
set "cmonth=%cdate:~3,2%"
set "cyear=%cdate:~6,4%"
if %cday% LSS 10 set "cday=%cday:~-1%"
if %cmonth% LSS 10 set "cmonth=%cmonth:~-1%"
set /a "days=cday+cmonth*30+cyear*365"
reg add HKCR\WRTE.Document.1\UID /v %frame% /d "@%days%">nul
 

Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 23:04 08-02-2007
Fraerok



Запрет на пост
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Elroir
че-то не работает. Открывается окошко и все и даже не закрывается само.
в реестр ничего не добавляется.

Всего записей: 1723 | Зарегистр. 11-05-2006 | Отправлено: 23:30 08-02-2007
Elroir



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

Код:
 
@echo off
setlocal
for /f "usebackq tokens=1" %%a in (`"reg query HKCR\WRTE.Document.1\UID /s | find /i "frame""`) do set "frame=%%a"
echo Key name = %frame%
pause
set "cdate=%date%"
set "cday=%cdate:~0,2%"
set "cmonth=%cdate:~3,2%"
set "cyear=%cdate:~6,4%"
if %cday% LSS 10 set "cday=%cday:~-1%"
if %cmonth% LSS 10 set "cmonth=%cmonth:~-1%"
set /a "days=cday+cmonth*30+cyear*365"
echo Number of days = %days%
pause
rem reg add HKCR\WRTE.Document.1\UID /v %frame% /d "@%days%">nul
 

Должно выдать Key name = Frame11 и Number of days = 732623

Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 23:39 08-02-2007
Fraerok



Запрет на пост
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Elroir
Key name = Frame11
Для продолжение нажмите любую клавишу...

Всего записей: 1723 | Зарегистр. 11-05-2006 | Отправлено: 23:41 08-02-2007
Elroir



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Какая у тебя версия Windows? - все, уже ответил
Нажми любую клавишу, а потом, когда спросит - еще раз.

Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 23:42 08-02-2007 | Исправлено: Elroir, 23:43 08-02-2007
Fraerok



Запрет на пост
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
=)
а, нажал и теперь Number of days = 732623
 
 
Добавлено:
XP SP2
т.е. мы имеем
Код:
 
Key name = Frame11  
Для продолжение нажмите любую клавишу...
Number of days = 732623  
Для продолжение нажмите любую клавишу...
-> выход

Всего записей: 1723 | Зарегистр. 11-05-2006 | Отправлено: 23:43 08-02-2007
Elroir



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

Код:
reg add HKCR\WRTE.Document.1\UID /v Frame12 /d "@123456"

и посмотри в реестре, что создалось (если создалось).

Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 23:46 08-02-2007
Fraerok



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

Всего записей: 1723 | Зарегистр. 11-05-2006 | Отправлено: 23:52 08-02-2007
Elroir



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Fraerok
А... все - я понял. Моя ошибка - я скрыл вывод утилиты reg.exe, а она когда добавляет в реестр значение параметра, который уже существует, запрашивает подтверждение .
В общем так:
1. Из реестра удалить Frame12
2. В коде батника, добавить /f в последней строчке:

Код:
 
reg add HKCR\WRTE.Document.1\UID /v %frame% /d "@%days%" /f >nul
 
 
 
Добавлено:
Имеется в виду первый код

Всего записей: 2631 | Зарегистр. 05-02-2003 | Отправлено: 23:59 08-02-2007 | Исправлено: Elroir, 00:00 09-02-2007
Fraerok



Запрет на пост
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
по-идее, батник должен спросить нужно ли замениь параметр на новый, в скрипет он этого не делает, вроде? Может, адо запомнить переменную, а перед добавление стерть её?
 
Добавлено:
Elroir
да, ты меня опередил) теперь работает. Спасибо!

Всего записей: 1723 | Зарегистр. 11-05-2006 | Отправлено: 00:01 09-02-2007
Compik



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Привет!
А можно ли сделать, чтобы после вывода сообщения ECHO  
поставить ... и что бы была одна, потом две, потом три точки
и так далее в цикле, пока не загрузится новый экран?
Например: Please wait ...

Всего записей: 260 | Зарегистр. 05-03-2003 | Отправлено: 11:37 10-02-2007
   

Страницы: 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 109 110 111 112 113 114 115 116 117 118

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


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

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

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru