Ru-Board.club
← Вернуться в раздел «Программы»

» Командная строка, батники, сценарии (bat, cmd) 2

Автор: mptok
Дата сообщения: 08.10.2008 22:52

Цитата:
RMR

что-то всё не выходит - выскакивает лист со списком и пустая папка..

На всякий случай выложил образец директории с файлами - http://slil.ru/26219142 , в подобные ей нужно будет запускать bat-файлик и в ней же получать новую папку с отобранными значениями
Автор: Shustrikf
Дата сообщения: 09.10.2008 07:02
Подскажите пожалуйста на такой вопросик ... задача сделать сетевой принтер (со своими ручными настройками)не ходя на РС так как их очень много ... вопросик ? написал батник

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 гдето там повнимательнее будь...
Автор: ilicho42
Дата сообщения: 09.10.2008 13:55
Доброго времени суток!
Решил облегчить себе жизнь, но как то получилось не очень...
В сети есть несколько проксиков и нужно перевести пользователей 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. Так вот вопрос: как заэкранировать знак =. Пробывал ставить ^=, но при такой компоновке он не воспринимает нужную стороку.
Заранее спасибо за помощь!
Автор: tomb2002
Дата сообщения: 09.10.2008 14:12
Может кто-нибудь помочь написать скрипт который может при его запуске проверять запущен explorer и если не запущен то запускать его, а иначе прекращать выполнение скрипта.
Автор: uZver
Дата сообщения: 09.10.2008 16:03
Shustrikf
ну если Psexec (см выше) не помог
то есть su.exe из Resource Kit
формат запуска password|su username
еще такой зверь есть
Автор: RMR
Дата сообщения: 09.10.2008 19:59
mptok смотри шапку:
Важно: копируя батник через буфер обмена из форума не забывайте удалять пробелы в конце каждой строки, т.к. в некоторых случаях из-за этого программа будет работать неправильно!!!
Автор: gryu
Дата сообщения: 09.10.2008 20:00
Народ, помогите.
Что то я совсем туплю.
Как в батнике прописать заход на запороленную шару на удалённом компе по паролю - логину?
Помню, что при помощи команды net.
Но нихрена не получается.
Вот пример.

net use *********** (и что дальше ??? Ведь делал когда-то.... )

xcopy "\\Wbs\data\*.*" "C:\Program Files\gamma\data\" /q /d /y
start "" "C:\Program Files\gamma\boro\loader.exe"

Сделал через подмонтирование шары, но ИМХО, не правильно это.

Хэлп ми!!!
Автор: RMR
Дата сообщения: 09.10.2008 20:07
tomb2002

Код: @echo off
tasklist | find "explorer.exe" || start explorer.exe
Автор: KapralBel
Дата сообщения: 09.10.2008 23:49
gryu
Net use \\Server\Secret$ /user:Domain\Admin Admin_Pass
Автор: monsoon
Дата сообщения: 10.10.2008 09:32
uZver

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

информация с оффсайта:
Lsrunase 2.0 is out and it is now part of the Lansweeper Premium User Pack
В бесплатный пакет она не входит, а premium всего ничего "only 149 $ a year."
Автор: gryu
Дата сообщения: 10.10.2008 13:58
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. .... а её "нэт".
Ну или не смог найти.

Добавлено:
Более того. Может кто знает.
Может возможно закрыть сессию не отключая ресурса, в случае если это сетевой диск.
Что бы можно было не перегружая машину заходить на разные шары под разными логинами.
А то винда помнит первое залогинивание и при попытке зайти на другой ресурс другим логином, бортует.
Автор: KapralBel
Дата сообщения: 10.10.2008 14:55
gryu
А если отключить службу, отвечающую за соединение с др. компами?

Добавлено:
gryu
А если отключить службу, отвечающую за соединение с др. компами?
Автор: pav4
Дата сообщения: 10.10.2008 15:56
люди есть проблема с батником, при скармиливании большой строки выдает ошибку: "Слишком длинная входная строка". Как увеличить размер этой строки(буфера)?
Автор: gryu
Дата сообщения: 10.10.2008 17:08
KapralBel

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

если ты имеешь ввиду
net stop
net start
то не помогает.
Сетевые диски никуда не деваются при этом.
Автор: guru431
Дата сообщения: 10.10.2008 20:29
Многие, наверно, сталкивались не раз со следующими твиками:

;"Открыть с помощью..." для любых типов файлов
[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, %* ?
Автор: klifsys
Дата сообщения: 11.10.2008 20:50
вот такой есть кмд:

robocopy "E:\TEST" "NULL" /MOV /MINAGE:6 /NP /R:10 /W:30

не знаю как правильно обозначить нуль, может кто подскажет как это сделать? или это все можно сделать совсем иначе? но одно условие - примерно так же коротко и просто.
Автор: KapralBel
Дата сообщения: 12.10.2008 10:35
gryu

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

Если в строке встречается двоеточие - идем в одну ветку обработки, нет в другую

Добавлено:
klifsys
Что ты хочешь сделать?
Автор: klifsys
Дата сообщения: 12.10.2008 16:12
у меня в определённую папку валятся ежедневные бекапы (размер каждого 9-10Гб), хочу автоматом их отстреливать по истечении шести дней хранения.

додумал кмд до такого:

7z.exe a e:\test\BackUp_%DATE%.7z -ssw @listfile.txt
c:\robocopy "E:\TEST" "D:\D" /MOV /MINAGE:1 /NP /R:10 /W:30
rd /S /Q D:\D

умнее ничего не придумывается... подскажешь?
Автор: KapralBel
Дата сообщения: 12.10.2008 17:47
klifsys

Цитата:
/MINAGE:1

А разве не 7?
а так вполне нормальное решение
Автор: klifsys
Дата сообщения: 12.10.2008 18:55
да с 1 это у меня для пробы на работоспособность.
ну если нормальное решение, то сомневаться больше не буду.
спасибо.
Автор: KapralBel
Дата сообщения: 12.10.2008 19:42
klifsys
Главное работает?
Автор: vitrzn
Дата сообщения: 12.10.2008 22:09
Я конечно изв. что может вопрос не сюда, но он тоже касается использования батников!

Есть батник (идёт перебор и сортировка файлов по дате их создания)

:loop
бла бла бла
бла бла бла
goto :loop

Если без :loop и goto :loop , то батник совсем не загружает систему при выполнении.
А вот если эти строчки оставить, то батник постоянно висит в задачах (это так и должно быть!), но при этом бедный процессор (Seleron 2000) напригается аж до 80% (просто жуть).

Так вот вопрос: а можно как-то эту нагрузку на процессор уменьшить?
Автор: Dasky
Дата сообщения: 12.10.2008 23:51
дорый...
подскажите плз батничег, чтоб можно было слелать следущее:
1.дать определенное сообщение
2.выполнить change logon disable
3.отстрелить народ с сервера, который на нем сидит через терминальные сессии
4.change logon enable
5.дать определенное сообщение.

спс...
Автор: Elroir
Дата сообщения: 13.10.2008 03:31
vitrzn

Цитата:
Если без :loop и goto :loop , то батник совсем не загружает систему при выполнении.

Не загружать-то он не загружает, но и не сортирует, не так ли?
Идет интенсивная работа с файлами с диска - вот процессор и загружен.
Автор: zzxx1488
Дата сообщения: 13.10.2008 03:46
доброй ночи
есть скрипт восстанавливающий таблицу рутинга по ip'шникам из файла \defgw, мне нужно чтобы добавились все ip кроме первого в обратном порядке, пытаюсь сделать так, но что-то не выходит
добавляются все ip включая первый, который не нужен

Set fsoWSH = CreateObject("Wscript.Shell")
Set fsoFCO = CreateObject("Scripting.FileSystemObject")
Set fsoGFF = fsoFCO.GetFolder(".")
Set fsoTXT = fsoFCO.OpenTextFile(fsoGFF.Path & "\defgw")
Do Until fsoTXT.AtEndOfStream
m = Split(fsoTXT.Readline)
a.Run "route ADD 0.0.0.0 MASK 0.0.0.0 " & m([5 - 1])
Loop
Автор: ilicho42
Дата сообщения: 13.10.2008 07:37
Подскажите мне пожалуйста как заэкранировать знак =? Я описывал свою проблему в посте за 14:55 09-10-2008. Очень нужно!!!
Автор: gryu
Дата сообщения: 13.10.2008 10:05
KapralBel, All
Поси(е)дел вчера, пытаясь реализовать решение задачи описанной в посте
http://forum.ru-board.com/topic.cgi?forum=5&topic=25393&start=1440#15 ,
Может кто поможет кодом?
Сама задача.
1. Отключаем все соединения.
2. Логинимся и проводим копирование всего нужного с удалённого диска
3. Восстанавливаем прежние соединения обратно.
Автор: Shustrikf
Дата сообщения: 13.10.2008 10:17
как запустить батник при помощи юзерских прав под админом? вот мой батник:
rundll32 printui.dll,PrintUIEntry /if /b "Xerox WorkCentre 7345" /f "\\Tig200\Distr\Drivers\Printers\Xerox WorkCentre 7345\Windows 2K XP 03 Vista PCL6\32-Bit\Russian\x2GPINX.inf" /r "file:" /m "Xerox WorkCentre 7345 PCL6"
pause

это установку принтера нужно запустить при помощи админовских прав как это сделать что писать ...
Автор: lipser
Дата сообщения: 13.10.2008 11:14
Уважаемые, подскажите!
Цель такая: есть папка с поддиректориями (z:\homes)
надо заставить rar архивировать каждую подпапку из этой папки в отдельный архив. Перепробовал все варианты до которых додумался, но нужного эффекта так и не получил. Пока полурабочий вариант выглядит так: из .bat файла находящегося в папке z:\homes запускаем следующую команду:

FOR %%n in (*) DO rar a X:\%%n.rar %%n

При этом архивируются только файлы, находящиеся в z:\homes, поддиректории с файлами не архивируются. При этом батник надо строго запускать из z:\homes, иначе ничего не получается. Поэтому вопросов 2:
1. Как заставить rar архивировать и подкаталоги тоже
2. Как правильно переписать строку, чтобы было необязательно запускать файл непосредственно из самой директории.

Заранее благодарен за помощь.

Добавлено:
Уважаемые, подскажите!
Цель такая: есть папка с поддиректориями (z:\homes)
надо заставить rar архивировать каждую подпапку из этой папки в отдельный архив. Перепробовал все варианты до которых додумался, но нужного эффекта так и не получил. Пока полурабочий вариант выглядит так: из .bat файла находящегося в папке z:\homes запускаем следующую команду:

FOR %%n in (*) DO rar a X:\%%n.rar %%n

При этом архивируются только файлы, находящиеся в z:\homes, поддиректории с файлами не архивируются. При этом батник надо строго запускать из z:\homes, иначе ничего не получается. Поэтому вопросов 2:
1. Как заставить rar архивировать и подкаталоги тоже
2. Как правильно переписать строку, чтобы было необязательно запускать файл непосредственно из самой директории.

Заранее благодарен за помощь.
Автор: U235
Дата сообщения: 13.10.2008 11:42
lipser


Код: for /d %%i in (*) do rar.exe a %%i %%i

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172

Предыдущая тема: DVD-video (ДВД-видео) - что и как (часть 3)


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.