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

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

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

Всего записей: 2895 | Зарегистр. 26-11-2005 | Отправлено: 19:16 04-02-2008
01MDM



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
juvaforza
Тогда смотри в сторону AutoIt (где-то оно было), но это уже другая тема.

Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 19:39 04-02-2008
juvaforza

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

Всего записей: 2895 | Зарегистр. 26-11-2005 | Отправлено: 20:06 04-02-2008
Garrett

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
juvaforza
Создайте файл a.vbs след.содержания:
 
   set WshShell = WScript.CreateObject("WScript.Shell")
   WshShell.Run "calc"
   WScript.Sleep 1000
   WshShell.AppActivate "Calculator"  
   WScript.Sleep 1000
   WshShell.SendKeys "1{+}"
   WScript.Sleep 5000
   WshShell.SendKeys "2"
   WScript.Sleep 5000
   WshShell.SendKeys "~"
   WScript.Sleep 5000
   WshShell.SendKeys "*9"
   WScript.Sleep 5000
   WshShell.SendKeys "~"
   WScript.Sleep 2500
 
Запустите.

Всего записей: 2730 | Зарегистр. 16-10-2003 | Отправлено: 21:32 04-02-2008
Sergey_AV



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подскажите, если знаете, как реализовать след. задачу. Есть .vbs-файл примерно такого содержимого:

Цитата:
Dim WSHShell
Set WSHShell = WScript.CreateObject("WScript.Shell")
on error resume next                                                                                  
v=WSHShell.RegRead("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\NvCplDaemon")
WSHShell.RegDelete "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run\NvCplDaemon"
on error goto 0

При нахождении параметра NvCplDaemon, он его удаляет со всеми его значениями.
А если параметр называется не просто NvCplDaemon, а например "F:\HWN\NvCplDaemon.exe", и при этом буквы дисков могут быть разными и директория идущая, после диска - тоже разные? Как быть в этом случае?
Неизменно только имя (параметр) - в данном случае NvCplDaemon.exe
Но расположен он может на любом диске и в любой папке - в данном случае это неважно.
Нужно просто этот параметр (со значением) удалить из реестра. По заранее известному пути (в известной ветке), если он присутствует.
Как это сделать посредством WSH?
 

Всего записей: 2336 | Зарегистр. 05-03-2002 | Отправлено: 10:35 05-02-2008 | Исправлено: Sergey_AV, 10:38 05-02-2008
Fraerok



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Привет!
Подскажите батник, который при запуске будет писать "yes", если стоит "no" и наоборот "no", если до этого стояло "yes" в ключе реестра "HKCU\Software\Microsoft\Internet Explorer\Main" /v "Display Inline Images" /d "no""
 
Т.е. чтобы с помощью батника я мог менять показывать/скрывать картинки.

Всего записей: 1723 | Зарегистр. 11-05-2006 | Отправлено: 15:18 05-02-2008
Accessor



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

Код:
 
for /f "skip=2 tokens=5" %%i in ('reg query "HKCU\Software\Microsoft\Internet Explorer\Main" /v "Display Inline Images"') do set val=%%i
if %val%==yes (echo yes) else (echo no)
 

а уж запись в реестр, надеемся, сделаешь сам?

Всего записей: 2863 | Зарегистр. 31-10-2003 | Отправлено: 15:49 05-02-2008
Fraerok



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Accessor
может еще ответить сможете на пару вопросов?))
1) Сделал батник:

Цитата:
for /f "skip=2 tokens=5" %%i in ('reg query "HKCU\Software\Microsoft\Internet Explorer\Main" /v "Display Inline Images"') do set val=%%i  
if %val%==yes (REG ADD "HKCU\Software\Microsoft\Internet Explorer\Main" /v "Display Inline Images" /d "no" /f) else (REG ADD "HKCU\Software\Microsoft\Internet Explorer\Main" /v "Display Inline Images" /d "yes" /f)

он меняет галочку в настройках (значение в реестре) точно так же, как если это делать мышкой через свойства в браузере, НО! после того как батник поменял это значение - картинки на странице не показываются/или не исчезают до того, пока браузер не откроешь снова. Т.е. захожу на страницу без картинок, нажимаю батник, он всё правильно меняет, нажимаю F5 - картинок нет. Открываю новое окно - картинки есть.
 
2) Кнопку добавляю через вот такой батник:
Цитата:
REG ADD "HKLM\SOFTWARE\Microsoft\Internet Explorer\Extensions\{546B303C-41F9-4CE4-A590-4A8E5E0B098E}" /v "Default Visible" /d "yes"
REG ADD "HKLM\SOFTWARE\Microsoft\Internet Explorer\Extensions\{546B303C-41F9-4CE4-A590-4A8E5E0B098E}" /v "Exec" /d "%ProgramFiles%\Internet Explorer\PLUGINS\img_but.bat"
REG ADD "HKLM\SOFTWARE\Microsoft\Internet Explorer\Extensions\{546B303C-41F9-4CE4-A590-4A8E5E0B098E}" /v "ButtonText" /d "Кнопка"
REG ADD "HKLM\SOFTWARE\Microsoft\Internet Explorer\Extensions\{546B303C-41F9-4CE4-A590-4A8E5E0B098E}" /v "Icon" /d ""
REG ADD "HKLM\SOFTWARE\Microsoft\Internet Explorer\Extensions\{546B303C-41F9-4CE4-A590-4A8E5E0B098E}" /v "HotIcon" /d ""
REG ADD "HKLM\SOFTWARE\Microsoft\Internet Explorer\Extensions\{546B303C-41F9-4CE4-A590-4A8E5E0B098E}" /v "MenuText" /d "&Картинки (on/off)"
REG ADD "HKLM\SOFTWARE\Microsoft\Internet Explorer\Extensions\{546B303C-41F9-4CE4-A590-4A8E5E0B098E}" /v "MenuStatusBar" /d "&Картинки (on/off) на страницах"
REG ADD "HKLM\SOFTWARE\Microsoft\Internet Explorer\Extensions\{546B303C-41F9-4CE4-A590-4A8E5E0B098E}" /v "CLSID" /d "{1FBA04EE-3024-11D2-8F1F-0000F87ABD16}"

Подглядел у одной программки. Но откуда она взяла значения -41F9-4CE4-A590-4A8E5E0B098E и 1FBA04EE-3024-11D2-8F1F-0000F87ABD16 и как мне сгенерировать правильно?
(кнопка должна быть самой крайней на панели, т.к. прозрачная и чтобы никому не мозолила глаза)

Всего записей: 1723 | Зарегистр. 11-05-2006 | Отправлено: 17:54 05-02-2008
Accessor



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Fraerok
по первому вопросу, попробуй применить внесенные изменения вот так:
Код:
 
rundll32 user32.dll,UpdatePerUserSystemParameters

По второму вопросу не отвечу. Не знаю.

Всего записей: 2863 | Зарегистр. 31-10-2003 | Отправлено: 18:36 05-02-2008 | Исправлено: Accessor, 18:39 05-02-2008
XXXXL



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Здраствуйте.
Мне нужно реализовать следушие:
Два файла 1.txt и 2.txt , в файле 2.txt есть около 100 строк и при запуске бат файла, первая строка должна оттуда врезаться в 1.txt.
в 2.txt должно при каждом запуске уменьшаться количество строк на одну.
а в 1.txt должна быть всегда только одна последняя вырезана с 2.txt строка.
 
Прошу помочь, если это возможно.

Всего записей: 286 | Зарегистр. 16-05-2007 | Отправлено: 18:53 05-02-2008
Garrett

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
XXXXL
Возможно.
Скачай UnixUtils, используй head, wc, tail и >>.

Всего записей: 2730 | Зарегистр. 16-10-2003 | Отправлено: 19:22 05-02-2008
juvaforza

BANNED
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Garrett
Спасибо, ледокол тронулся  
А как работать с русской раскладкой?

Всего записей: 2895 | Зарегистр. 26-11-2005 | Отправлено: 19:38 05-02-2008 | Исправлено: juvaforza, 21:17 05-02-2008
XXXXL



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

Цитата:
Скачай UnixUtils, используй head, wc, tail и >>.  

UnxUtils у меня есть а вот каким образом можно использовать head, wc, tail и >>. я  не знаю
Может кто поможет написать, плз.

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



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
XXXXL
Распиши по пунктам. Не совсем понятно что надо делать.
 
1. Первая строка из 2.txt вырезается и вставляется в 1.txt (куда? в начало файла или в конец , или там кроме этой строки ничего больше нет?)
 
2.  В 2.txt должно при каждом запуске уменьшаться количество строк на одну (На ту что вырезали?)
 
3.  а в 1.txt должна быть всегда только одна последняя вырезана с 2.txt строка. (??)
 
За один запуск батника порядок действий выполняется только один раз или он работает пока в 2.txt не останется строк?
 

Код:
 
@echo off
set /p firstLine=<2.txt
echo %firstLine%>1.txt
for /f "skip=1 tokens=*" %%i in (2.txt) do echo %%i>>2.tmp
move 2.tmp 2.txt  
 


Всего записей: 2638 | Зарегистр. 13-02-2006 | Отправлено: 22:08 05-02-2008 | Исправлено: 01MDM, 22:22 05-02-2008
Garrett

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
juvaforza
Почитай в MSDN про SendKeys. Мне кажется буква будет зависеть от раскладки клавиатуры в момент работы скрипта.
Как вариант, можно попробовать в языковых настройках указать специфичные клавиши для переключения на русский и отдельно на английский язык, а в скрипте сначала послать переключение на нужный язык, а затем текст. Сам не пробовал, правда.
 
XXXXL
что-то типа
echo off
head -1 2.txt >> 1.txt
gawk "{if (NR!=1) print;}" 2.txt > 3.txt
move 3.txt 2.txt
 

Всего записей: 2730 | Зарегистр. 16-10-2003 | Отправлено: 22:35 05-02-2008
XXXXL



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
01MDM, даже мне не придётся отвечать на вопросы, это:

Код:
@echo off  
set /p firstLine=<2.txt  
echo %firstLine%>1.txt  
for /f "skip=1 tokens=*" %%i in (2.txt) do echo %%i>>2.tmp  
move 2.tmp 2.txt  

то что мне и нужно было. Спасибо огромное!!!
 
Garrett, спасибо! теперь у меня есть два способа.
 
 
P.S Может когда нибудь администрация forum.ru-board.com сделает кнопку СПАСИБО!

Всего записей: 286 | Зарегистр. 16-05-2007 | Отправлено: 22:44 05-02-2008 | Исправлено: XXXXL, 22:49 05-02-2008
sscfree



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
2 ALL
Никто не знает,  как программно определить язык обновления, можь какой-нить команднострочный редактор ресурсов, или еще как из M$ обновлений типа WindowsXP-KB834707-x86-rus.exe следует узнать, какие из них английские, а какие нужные нам. Чтобы потом nLite'у закинуть.

Всего записей: 124 | Зарегистр. 27-08-2005 | Отправлено: 07:41 06-02-2008
igor_andreev

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
sscfree
filever.exe из любого ресурс кита, она выдает APP ENU или APP RUS
http://support.microsoft.com/kb/913111

Всего записей: 1704 | Зарегистр. 08-12-2004 | Отправлено: 14:18 06-02-2008
ferapontov

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Всем привет!  
У меня такой вопрос: мне каждый день надо грузить файлы за вчерашний день,которые находятся в папках : \\server\YYYY\MM\YSTD ,где YYYY -текущий год,MM -месяц,YSTD -вчерашнее число.
Я нашел команду for /f "tokens=1,2,3,4* delims=. " %%i in ('date /t') do set TDDAY=%%i&set TDMM=%%j&set TDYY=%%k , при этом переменной TDDAY присваивается значение равное сегодняшнему дню,кто нибудь может подсказать как получить вчерашнюю дату?
Я пробовал завести переменную YSTD ,равную TDDAY-1 ))))) но такая хрень работает только с 11 по 31-е число))
 
Please help ))))))  
 
Добавлено:
Спасибо!

Всего записей: 5 | Зарегистр. 06-02-2008 | Отправлено: 14:53 06-02-2008
gryu



дикий гусь
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Коллеги, вот тут обнаружились на диске 2 справочника по командам ХР.
"Полный перечень команд ХР с описанием, в одном файле HTM" и "Windows Command-Line / Командная строка Windows" 2004 год.
Если это не повтор справочников уже лежащих в шапке, то может кто переложит на постоянный файлообменник и поместит в шапку.  

Всего записей: 13019 | Зарегистр. 15-03-2006 | Отправлено: 15:39 06-02-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.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru