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

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



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

Цитата:
А можно без использования  cmdow убрать вообще дос окно?

мне такое не известно, можно запускать в свернутом окне  
start /min
Shustrikf

Цитата:
Решение 1-е
PSExec
 
 

Всего записей: 195 | Зарегистр. 10-10-2003 | Отправлено: 16:30 08-10-2008
Pazan



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
как-нибудь можно с помощью стандартных CMD создать такой скрипт:
1. есть папка D:\BACK-UP
2. просмотреть, если есть файлы, дата создания которых на 6 дней старшая от системной даты - удалить файлы

----------
Почему глупый, потому что бедный... Почему бедный, потому что глупый...

Всего записей: 907 | Зарегистр. 17-11-2002 | Отправлено: 18:50 08-10-2008
Greshnik1980

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
как сделать небольшую паузу после выполнения команды

Всего записей: 17 | Зарегистр. 07-10-2008 | Отправлено: 19:20 08-10-2008
mptok

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

Цитата:
RMR

что-то всё не выходит - выскакивает лист со списком и пустая папка..
 
На всякий случай выложил образец директории с файлами - http://slil.ru/26219142 , в подобные ей нужно будет запускать bat-файлик и в ней же получать новую папку с отобранными значениями

Всего записей: 98 | Зарегистр. 22-04-2006 | Отправлено: 23:52 08-10-2008
Shustrikf

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подскажите пожалуйста на такой вопросик ... задача сделать сетевой принтер (со своими ручными настройками)не ходя на РС так как их очень много ... вопросик ? написал батник  
 
rundll32 printui.dll,PrintUIEntry /if /b "Xerox WorkCentre 7346" /f "\\Tig-200\Distr\Drivers\Printers\Xerox WorkCentre 7345\Windows 2K XP 03 Vista PCL6\32-Bit\Russian\x2GPINX.inf" /r "file:" /m "Xerox WorkCentre 7346 PCL6"
pause  
 
для сетевой рассылки дров тока он без админовских прав не стартует(((  
Решение 1-е : Сделать так написать батник с админовскими правами а как прописать чета не получается (пример администратор: Tomas,пароль:qwertyu123)  
Решение 2-е: Написать батник с msi установщиков где ((или) а главное как???) есть ручные настройки принтера?
Решение 3-е: Написать батник установщиков где есть ручные настройки принтера?
Помогите кто сможет очень надо за срочность отдельное спасибо ...
 
про мой вопросик забыли(((( некто не дал точного ответа(((( хоть подскажите как оргонизовать простое диалоговое окошечко при помощи bat - товского файла ?
 
Добавлено:

Цитата:
паузу после выполн


Цитата:
[/q]
[q]
Greshnik1980
Newbie    сделать небольшую паузу после выполнения команды
 
см ранее об этом уже говорилось ... гдето в начале стр 1-7 гдето там повнимательнее будь...

Всего записей: 11 | Зарегистр. 07-10-2008 | Отправлено: 08:02 09-10-2008 | Исправлено: Shustrikf, 08:16 09-10-2008
ilicho42



Newbie
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Доброго времени суток!
Решил облегчить себе жизнь, но как то получилось не очень...  
В сети есть несколько проксиков и нужно перевести пользователей qip с одного проксика на другой. Хранит qip конфиг в текстовом файле и нужно всего лишь заменить там несколько строк.
Вот что я написал для этого:
 
1.bat (поиск файлов config.ini на диске С):
 
@echo off
dir C:\ /s /b | find "config.ini">list001451.txt
call 2.bat
 
2.bat (привожу пути к файлу в вид, понятный команде cd):
 
@echo off
for /f "tokens=*" %%b in ('more^<list001451.txt') do call :_replace1 %%b
del list001451.txt
rename new.txt list001451.txt
call 3.bat
goto eof
:_replace1
set i=%*
echo %i%
set i=%i:Config.ini=%
echo %i%>>new.txt
:eof
 
3.bat (ну и тут собственно открытие файлов config.ini, поиск и замена нужных строк):
 
for /f "tokens=*" %%f in ('more^<list001451.txt') do cd %%f&call :_replace0
:_replace0
for /f "tokens=*" %%a in ('more^<config.ini') do call :_replace %%a
del config.ini
rename new.ini config.ini
goto eof
:_replace
set i=%*
echo %i%
set i=%i:Port=5190=Port=443%
set i=%i:ProxyType=NONE=ProxyType=HTTP(S)%
set i=%i:ProxyHost==ProxyHost=192.168.130.8%
set i=%i:ProxyHost=192.168.130.18=ProxyHost=192.168.130.8%
set i=%i:ProxyPort==ProxyPort=3128%
set i=%i:ProxyAyth=No=ProxyAuth=Yes%
echo %i%>>new.ini
:eof
 
Может это не совсем красиво, но как смог...  
Как видно изменение строк сторок идёт в 3м батнике и нужно изменить строку Port=5190 на Port=443. Так вот вопрос: как заэкранировать знак =. Пробывал ставить ^=, но при такой компоновке он не воспринимает нужную стороку.
Заранее спасибо за помощь!  

Всего записей: 12 | Зарегистр. 10-07-2008 | Отправлено: 14:55 09-10-2008
tomb2002

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Может кто-нибудь помочь написать скрипт который может при его запуске проверять запущен explorer и если не запущен то запускать его, а иначе прекращать выполнение скрипта.

Всего записей: 1 | Зарегистр. 10-01-2006 | Отправлено: 15:12 09-10-2008
uZver



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Shustrikf
ну если Psexec (см выше) не помог
то есть su.exe из Resource Kit
формат запуска password|su username
еще такой зверь есть

Всего записей: 195 | Зарегистр. 10-10-2003 | Отправлено: 17:03 09-10-2008 | Исправлено: uZver, 17:08 09-10-2008
RMR

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
mptok смотри шапку:
Важно: копируя батник через буфер обмена из форума не забывайте удалять пробелы в конце каждой строки, т.к. в некоторых случаях из-за этого программа будет работать неправильно!!!

Всего записей: 32 | Зарегистр. 23-11-2006 | Отправлено: 20:59 09-10-2008
gryu



дикий гусь
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Народ, помогите.
Что то я совсем туплю.  
Как в батнике прописать заход на запороленную шару на удалённом компе по паролю - логину?
Помню, что при  помощи команды net.
Но нихрена не получается.  
Вот пример.
 
net use *********** (и что дальше ??? Ведь делал когда-то.... )
 
xcopy "\\Wbs\data\*.*"  "C:\Program Files\gamma\data\"  /q /d /y  
start "" "C:\Program Files\gamma\boro\loader.exe"  
 
Сделал через подмонтирование шары, но ИМХО, не правильно это.
 
Хэлп ми!!!

Всего записей: 12952 | Зарегистр. 15-03-2006 | Отправлено: 21:00 09-10-2008
RMR

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

Код:
@echo off
tasklist | find "explorer.exe" || start explorer.exe

Всего записей: 32 | Зарегистр. 23-11-2006 | Отправлено: 21:07 09-10-2008 | Исправлено: RMR, 21:07 09-10-2008
KapralBel



Platinum Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
gryu
Net use \\Server\Secret$ /user:Domain\Admin Admin_Pass

Всего записей: 11354 | Зарегистр. 16-02-2005 | Отправлено: 00:49 10-10-2008
monsoon



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

Цитата:
еще такой зверь есть  

информация с оффсайта:
Lsrunase 2.0 is out and it is now part of the Lansweeper Premium User Pack
В бесплатный пакет она не входит, а premium всего ничего "only 149 $ a year."

Всего записей: 1252 | Зарегистр. 30-01-2003 | Отправлено: 10:32 10-10-2008
gryu



дикий гусь
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
KapralBel
Сяб.  
Сегодня посмотрел  и сообразил где вчера упёрся.  
Но в комплексе, проблему решил не полностью.  
 
Задача состоит ещё и в принудительном перелогировании с разными аккаунтами.
Т.е. на шару \\Wbs\data лезем как  "blondinka", а на шару \\Wbs\photo как "shatenka".
По сути решение проблемы в принудительном отключении прежних сессий. Причём всех.  
Иначе получаем сообщение о невозможности мультисесии.  
Именно ОТКЛЮЧЕНИЕ, что я не нашёл. Есть удаление ресурса.
Но команда net при удалении понимает только прямое указание ресурса
Net use \\Wbs\data /delete  
Net use \\Wbs\* /delete - уже не понимает.  
1. Кто знает, может она (команда net) всё же знает какие нибуть подстановочные символы?
2. Возможно есть ключ отключающий ВСЕ коннекты. (Net use /all /delete - не срабатывает). Не желательно. Несли отрубить ВСЕ сесии, то сетевые диски тоже отрубаются и потом сами не восстанавливаются.  
3. Создание переменной на основе команды Net use без ключей.  
Выдаётся таблица продключений и на её оснрове переменные.  
ИМХО, наиболее предпочтительней.  
Пробовал создавать переменные. Что то не получилось.  Не смог вычлинить нужные данные из таблицы.
Там если это подключённый сетевой диск, то нужно отключать по букве диска, а если просто открытая сессия, то по пути.  
 
Status       Local     Remote                    Network
----------------------------------------------------------------------------
OK                      \\Server\shared           Microsoft Windows Network
OK           y:        \\Server\date               Microsoft Windows Network
 
 
В сети пытался найти развёрнутое описание команды Net. .... а её "нэт".  
Ну или не смог найти.  
 
Добавлено:
Более того. Может кто знает.  
Может возможно закрыть сессию не отключая ресурса, в случае если это сетевой диск.  
Что бы можно было не перегружая машину заходить на разные шары под разными логинами.  
А то винда помнит первое залогинивание и при попытке зайти на другой ресурс другим логином, бортует.

Всего записей: 12952 | Зарегистр. 15-03-2006 | Отправлено: 14:58 10-10-2008 | Исправлено: gryu, 15:08 10-10-2008
KapralBel



Platinum Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
gryu
А если отключить службу, отвечающую за соединение с др. компами?
 
Добавлено:
gryu
А если отключить службу, отвечающую за соединение с др. компами?

Всего записей: 11354 | Зарегистр. 16-02-2005 | Отправлено: 15:55 10-10-2008
pav4



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
люди есть проблема с батником, при скармиливании большой строки выдает ошибку: "Слишком длинная входная строка". Как увеличить размер этой строки(буфера)?

Всего записей: 211 | Зарегистр. 10-03-2005 | Отправлено: 16:56 10-10-2008
gryu



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

Цитата:
А если отключить службу, отвечающую за соединение с др. компами?

если ты имеешь ввиду  
net stop
net start  
то не помогает.  
Сетевые диски никуда не деваются при этом.

Всего записей: 12952 | Зарегистр. 15-03-2006 | Отправлено: 18:08 10-10-2008
guru431

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Многие, наверно, сталкивались не раз со следующими твиками:
 
;"Открыть с помощью..." для любых типов файлов
[HKEY_CLASSES_ROOT\*\Shell\OpenAs2]  
@="Открыть как..."  
[HKEY_CLASSES_ROOT\*\Shell\OpenAs2\command]  
@="rundll32.exe shell32.dll,OpenAs_RunDLL %1"  
 
;"Запуск от имени..." для любых типов файлов
[HKEY_CLASSES_ROOT\*\shell\runas]
@=""
[HKEY_CLASSES_ROOT\*\shell\runas\command]
@="\"%1\" %*"
 
;Добавить в контекстное меню dll-файлов команду register/unregister (для быстрой регистрации библиотек в системе)
[HKEY_CLASSES_ROOT\.dll]
"Content Type"="application/x-msdownload"
@="dllfile"
[HKEY_CLASSES_ROOT\dllfile]
@="Application Extension"
[HKEY_CLASSES_ROOT\dllfile\Shell\Register\command]
@="regsvr32.exe \"%1\""
[HKEY_CLASSES_ROOT\dllfile\Shell\UnRegister\command]
@="regsvr32.exe /u \"%1\""
 
;Добавить в контекстное меню осх-файлов команду register/unregister (для быстрой регистрации библиотек в системе)
[HKEY_CLASSES_ROOT\.ocx]
@="ocxfile"
[HKEY_CLASSES_ROOT\ocxfile]
@="OCX"
[HKEY_CLASSES_ROOT\ocxfile\Shell\Register\command]
@="regsvr32.exe \"%1\""
[HKEY_CLASSES_ROOT\ocxfile\Shell\UnRegister\command]
@="regsvr32.exe /u \"%1\""  
 
;Добавить в контекстное меню папок "Командная строка"
[HKEY_CLASSES_ROOT\Folder\shell\cmdpromt]
@="Командная строка"
[HKEY_CLASSES_ROOT\Folder\shell\cmdpromt\command]
@="Cmd.exe /k pushd %L"
 
;"Запуск от имени..." для папок (%SystemRoot%\Explorer.exe /separate,%1 %*)
[HKEY_CLASSES_ROOT\Folder\shell\runas]
@=""
[HKEY_CLASSES_ROOT\Folder\shell\runas\command]
@=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,74,00,25,\
  00,5c,00,45,00,78,00,70,00,6c,00,6f,00,72,00,65,00,72,00,2e,00,65,00,78,00,\
  65,00,20,00,2f,00,73,00,65,00,70,00,61,00,72,00,61,00,74,00,65,00,2c,00,25,\
  00,31,00,20,00,25,00,2a,00,00,00
 
;Добавить в контекстное меню папок "Проводник для этой папки"
[HKEY_CLASSES_ROOT\Folder\shell\xplore]
@="Проводник для этой папки"
[HKEY_CLASSES_ROOT\Folder\shell\xplore\command]
@="explorer.exe /e,/root,/idlist,%i"
 
----------------------------------------------------------------------
 
У меня появилось желание сделать что-то подобное в контекстном меню компьютеров в сетевом окружении.
 
Например Ping
[HKEY_CLASSES_ROOT\Network\shell\ping]
@="ping -t -l 1500"
[HKEY_CLASSES_ROOT\Network\shell\ping\command]
@="cmd /k ping \"%1\" -t -l 1500"
 
Контекстное меню появляется, но пинг идет на мой компьютер, а не тот, на котором я нажал правой кнопкой.
 
 
И вообще может кто-нибудь объяснить что именно значат %1, %L, %i, %* ?

Всего записей: 64 | Зарегистр. 28-02-2007 | Отправлено: 21:29 10-10-2008 | Исправлено: guru431, 21:36 10-10-2008
klifsys

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
вот такой есть кмд:
 
robocopy "E:\TEST" "NULL" /MOV /MINAGE:6 /NP /R:10 /W:30
 
не знаю как правильно обозначить нуль, может кто подскажет как это сделать? или это все можно сделать совсем иначе? но одно условие - примерно так же коротко и просто.

Всего записей: 123 | Зарегистр. 07-04-2008 | Отправлено: 21:50 11-10-2008
KapralBel



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

Цитата:
Там если это подключённый сетевой диск, то нужно отключать по букве диска, а если просто открытая сессия, то по пути.

Если в строке встречается двоеточие - идем в одну ветку обработки, нет в другую
 
Добавлено:
klifsys
Что ты хочешь сделать?

Всего записей: 11354 | Зарегистр. 16-02-2005 | Отправлено: 11:35 12-10-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.Board
© Ru.Board 2000-2020

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru