Ru-Board.club
← Вернуться в раздел «Microsoft Windows»

» Задачи на bat-файлах 4

Автор: Voviy
Дата сообщения: 20.02.2008 15:14
Помоги решить такую задачку,
Нужно запускать скрипты (vbs) на удаленном компьютере,
Задачка в следующем подкллючать скриптом на удаленных компах принтеры из ad,
пробовал использовать утилиты Psexec.exe, т.е. след. код

в первом файле file1.cmd
for /F %%A in (servers.txt) do (call file2.cmd %%A)

во втором файле file2.cmd
copy \\192.168.1.242\c$\my\scripts\connect_print.vbs \\%1\c$\
psexec \\%1 -s -c file3.cmd

в третьем файле file3.cmd
start C:\connect_print.vbs
ping -n 10 localhost >NUL
del C:\connect_print.vbs

пинг использовал для задержки , чтоб vbs скрипт успевал отработать

и файл servers.txt с ip компов на которых нужно прописать принтер

и сам скрипт connect_print.vbs
Option Explicit
Dim WSHNetwork, Computer, Path, strComputerDN, objSysInfo, objComputer, sPrintPath, PrintLocation
'Dim FSO,FileName
Dim objWMIService, colInstalledPrinters, objPrinter
'Создаем объект FileSystemObject
'Set FSO = WScript.CreateObject("Scripting.FileSystemObject")
Set WSHNetwork = CreateObject("WScript.Network")
'Задаем имя файла
'FileName="C:\connect_print.vbs"
On Error Resume Next

sPrintPath = "\\anna\HP2430_2floor"
'sPrintPath = "\\anna\RICOHafi"

WSHNetwork.AddWindowsPrinterConnection sPrintPath
WSHNetwork.SetDefaultPrinter sPrintPath
'FSO.DeleteFile FileName
'WScript.Echo "Файл удален"

Проблема в том, что file3.cmd отрабатывает на удаленной машине, а сам скрипт connect_print.vbs, ничего не подключает...
Что можете посоветовать , может как то подругому можно обойтись ?
Заранее спасибо!
Автор: returt
Дата сообщения: 20.02.2008 15:37
01MDM
Я не соображу как, у меня в команде еще и |find. cmd ругается "| was unexpected at this time"
Как-нибудь можно просто перенаправить результат команды в переменную?
Автор: Joolz
Дата сообщения: 20.02.2008 15:51
01MDM
Протестил. На локальной машине все ОК. При запуске через psexec на удаленном компе вываливается с ошибками.
[more]
Uninstall: "= 1>>\\519-4\50X\HM-XPst.txt
"Burn" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.
RegPath: HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall\Ashampoo Movie Shrink
"Burn" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.
Program: Ashampoo Movie Shrink
"Burn" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.
RegPath: HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall\Click
"Create" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.
Program: Click
"Create" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.
"RealPlayer" не является внутренней или внешней
командой, исполняемой программой или пакетным файлом.
[/more]
Автор: sergdf
Дата сообщения: 20.02.2008 17:22

Цитата:
start "" "Path\To\program.exe" "Path\To\file.mp3

Спасибо, так работает но лишь при условии, что путь к файлу не содержит русских символов... может можно как-нибудь это обойти???
Автор: king_stiven
Дата сообщения: 20.02.2008 17:26
returt
Приведи пример команды
FOR /F "options" %%e IN ('command') DO set "peremenay=%%e"

Добавлено:
sergdf
Ставь вначале
chcp 1251 > nul
Автор: sergdf
Дата сообщения: 20.02.2008 17:32

Цитата:
sergdf
Ставь вначале
chcp 1251 > nul

Огромное спасибо!
Автор: 01MDM
Дата сообщения: 20.02.2008 18:52
Joolz

Цитата:
на удаленном компе вываливается с ошибками.

Посмотрел на другом компьютере, тоже были ошибки. Немного изменил.
Теперь вроде без ошибок.

Код:
@echo off
setlocal
chcp 1251 1>nul

set p=Program:
set u=Uninstl:
set rpath=HKLM\Software\Microsoft\Windows\CurrentVersion\Uninstall

for /f "tokens=*" %%a in ('reg query %rpath% ^| findstr "HKEY"') do (
echo RegPath: %%a 1>>uninst.txt

for /f "tokens=3*" %%a in ('reg query "%%a" ^| findstr "\<DisplayName\>"') do (
echo %p% %%a %%b 1>>uninst.txt
)

for /f "tokens=3*" %%a in ('reg query "%%a" ^| findstr "\<UninstallString\>"') do (
echo %u% %%a %%b 1>>uninst.txt
)

echo ---------------------------------------------- 1>>uninst.txt
)
chcp 866 1>nul
Автор: returt
Дата сообщения: 20.02.2008 19:17
01MDM
king_stiven
Спасибо, разобрался, сделал через for
Автор: Rom213
Дата сообщения: 20.02.2008 19:46
Народ подскажите плиз что то ненашел или просмотрел.
Надо короче команда которая будет подключать отключать локальную сеть, но не rasdial, она что то не хочет етого делать.
Всем спасибо.
Автор: clio77
Дата сообщения: 20.02.2008 20:05
Очень нужна помощь в написании батника.Поджимает время, на изучение синтаксиса его просто нет. Приму помощь, в любом виде.Обязуюсь потом изучить синтаксис
Автор: 01MDM
Дата сообщения: 20.02.2008 20:42
Rom213

Цитата:
что то ненашел или просмотрел.

В шапке, полезные утилиты: cnic

Код:
cnic "Подключение по локалной сети" -с(onnect)
-d(isconnect)
Автор: Elroir
Дата сообщения: 20.02.2008 22:41
clio77
Все три пункта возможны.

Код:
rd /q temp_for_rar
md temp_for_rar
xcopy \\remote1\file11 temp_for_rar\
xcopy \\remote1\file12 temp_for_rar\
xcopy \\remote2\file21 temp_for_rar\
xcopy \\remote2\file22 temp_for_rar\
xcopy \\remote3\file31 temp_for_rar\
xcopy \\remote3\file32 temp_for_rar\
xcopy \\remote4\file41 temp_for_rar\
xcopy \\remote4\file42 temp_for_rar\
cd temp_for_rar
rar a archive *.*
ftp -s:ftp.txt
cd..
Автор: Rom213
Дата сообщения: 21.02.2008 00:21
01MDM
спасибо выручил но а все таки команды нет такой, а то хочу простеньки батник написать.

+ еще один вопрос
можно ли создать bat файл чтобы подключать ЛВС с разными параметрами (ну допустим ip-никами)
Автор: clio77
Дата сообщения: 21.02.2008 05:53
Elroir
Больчое человеческое спасибо
Автор: ipmanyak
Дата сообщения: 21.02.2008 11:12
Rom213 команда netsh
Синтаксис
set address [name=]имя_интерфейса [source=]{dhcp | static [addr=]IP-адрес
[mask=]маска_подсети [gateway=]{none | основной_шлюз
[[gwmetric=]метрика_шлюза]}}

Отключение – включение интефейса
netsh interface set interface name = "Local Area Connection" admin = DISABLED
netsh interface set interface name = "Local Area Connection" admin = ENABLED
netsh interface set interface name = " Подключение по локальной сети " admin = DISABLED
netsh interface set interface name = " Подключение по локальной сети " admin = ENABLED

netsh interface ip set address name="Подключение по локальной сети" source=static addr=217.29.119.136 mask=255.255.255.224
netsh interface ip set address name="Подключение по локальной сетиl" gateway=217.29.119.142 gwmetric=0


Автор: PegasusUnicorn
Дата сообщения: 21.02.2008 11:39
Уважаемые знатоки!
Мне нужно чтобы BAT/CMD создавал для папку с именем равным текущей дате и текущему времени.
Например так: 21.02.2008_12.38 или так 21.02.2008_1238 или иначе.
Пробовал я set datetimetemp=%date:~-10%_%time:~-11%, но поскольку минуты от секунд там отделяются двоеточием, то папка с таким именем не может быть создана.
Насколько я понимаю.
Пока что у меня так:
E:
set datetemp=%date:~-10%
MD E:\COPY.BASES\\%datetemp%\BASES
CD E:\BASES
XCOPY E:\BASES\*.* E:\COPY.BASES\\%datetemp%\BASES /s /e
І
exit

С уважением,
PegasusUnicorn
Автор: 01MDM
Дата сообщения: 21.02.2008 11:48
ipmanyak

Код:
netsh interface set interface name = "имя_coeдинения" admin = DISABLED | ENABLED
Автор: Joolz
Дата сообщения: 21.02.2008 12:01
PegasusUnicorn

Цитата:
Пробовал я set datetimetemp=%date:~-10%_%time:~-11%, но поскольку минуты от секунд там отделяются двоеточием, то папка с таким именем не может быть создана.

Когда создаешь папку пиши %datetimetemp::=-% - произойдет замена двоеточий на тире

Код: set datetimetemp=%date%_%time:~0,-3%
set datetimetemp=%datetimetemp::=-%
Автор: Rom213
Дата сообщения: 21.02.2008 12:13
Со сменой ip прокатило но вот что то включить отключить интерфейс не получается пишет либо неправильно задан параметр, или один или несколько параметров не указаны.

Какая то непонятка, уже 30 мин мучаюсь
Автор: Nagual
Дата сообщения: 21.02.2008 14:41
01MDM

Код:
cnic "Подключение по локалной сети" -с(onnect)
-d(isconnect)
Автор: GGS
Дата сообщения: 21.02.2008 15:30
PegasusUnicorn
Попробуй это (всё одной строкой)

1 - из командной строки:
Код:
for /f "tokens=1-3 delims=. " %a in ('date /t') do for /f "tokens=1,2 delims=:" %d in ('time /t') do md "%c-%b-%a_%d.%e"
Автор: Voviy
Дата сообщения: 21.02.2008 15:49
Подскажи плиз , как можно запускать на удаленном компе vbs скрипты под текущим пользователем. не могу никак додумать как установить принтер на удаленной машине с помощью скриптов...
Автор: Joolz
Дата сообщения: 21.02.2008 16:44
Voviy
http://forum.ru-board.com/topic.cgi?forum=33&topic=8429
Автор: 01MDM
Дата сообщения: 21.02.2008 16:52
Nagual

Цитата:
такая запись неверна, так как cnic может работать только с латиницей

У меня работает с кириллицей...
Автор: Rom213
Дата сообщения: 22.02.2008 00:35
Nagual
Нет с этой пргогой я разобралсыя все гуд работает просто думал в батнике прописать сразу все через команды, так как надо присвоивать разные ip адреса
Автор: PegasusUnicorn
Дата сообщения: 22.02.2008 09:35
Большое спасибо!
Автор: ViSiToR
Дата сообщения: 23.02.2008 07:24
Утилтиа-модуль (VBS-скрипт) для Internet Explorer - Позволяет копировать выделенный текст без пробелов на конце. Особенно полезно тут на руборде

Copy_From_Ru-Board_Installer_to_IE.vbs

- Работает из контекстного меню IE («Копировать с Ru-Board»).


Известные глюки/недостатки:

* Когда копируем, текущее окно IE теряет фокус. Возможно мой локальный глюк. Будем считать фичей - Копируем текст, и окно автоматический сворачивается, чтобы вставить скопированное в другое место (в созданный батник к примеру).
* Копирование ограничено Plain Text. Т.е форматирование не сохраняется.



P.S
Если кому интересно, могу и для Opera сделать
Автор: king_stiven
Дата сообщения: 23.02.2008 09:50
ViSiToR
Хорошо, только в последней строчки пробел остаётся.
Автор: ViSiToR
Дата сообщения: 23.02.2008 10:09
king_stiven

Цитата:
в последней строчки пробел остаётся.

Поправил. Также теперь если вызывать контекстное меню над ссылкой/картинкой (под выделенным текстом), пункт «Копировать с Ru-Board» будет доступен.

Добавлено:
Забыл спросить, "эффект" сворачивания окна IE при копировании присутствует?
Автор: king_stiven
Дата сообщения: 23.02.2008 10:56
ViSiToR
"Эффект" сворачивания окна IE при копировании то присутствует, то нет.

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869

Предыдущая тема: Доступ к реестру через RegEdit?


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