Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Принтер по умолчанию по маске имени

Ответить
Настройки темы
CMD/BAT - [решено] Принтер по умолчанию по маске имени

Пользователь


Сообщения: 92
Благодарности: 1

Профиль | Отправить PM | Цитировать


Есть прекрасный, простой и вполне рабочий скрипт для установки определенного принтера в качестве используемого по-умолчанию, вот он:

Код: Выделить весь код
rundll32 printui.dll,PrintUIEntry /y /n "Printer_name"
Задача: Модифицировать скрипт таким образом, чтобы в параметре Printer_name можно было задвать имя принтера по маске.
Пример:
Имя принтера "HP1320_buh (Перенаправлено 1)"
Нужно сделать так, чтобы по-умолчанию ставился принтер, первая часть названия которого совпадает с HP_1320_buh , то есть что то вроде "HP_1320_buh****"

Код: Выделить весь код
rundll32 printui.dll,PrintUIEntry /y /n "HP_1320_buh***"
- не работает

Спасибо

Отправлено: 13:43, 16-06-2014

 

Аватара для cameron

Ветеран


Contributor


Сообщения: 4677
Благодарности: 1091

Профиль | Отправить PM | Цитировать


всегда отрадно видеть любителей костылей, изобретающих велосипеды с треугольными, поперечными колёсами.

-------
в личке я не консультирую и не отвечаю на профессиональные вопросы. для этого есть форум.

Это сообщение посчитали полезным следующие участники:

Отправлено: 14:18, 16-06-2014 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Пользователь


Сообщения: 92
Благодарности: 1

Профиль | Отправить PM | Цитировать


Цитата cameron:
всегда отрадно видеть любителей костылей, изобретающих велосипеды с треугольными, поперечными колёсами. »
Есть проблема с определенным оборудованием в определенной конфигурации, описана например здесь http://toster.ru/q/100419
Решения нет. Костыли рассматриваются пока как единственно возможное решение.

Отправлено: 14:27, 16-06-2014 | #3


Ветеран


Contributor


Сообщения: 27628
Благодарности: 8082

Профиль | Отправить PM | Цитировать


WSH:
читать дальше »
Код: Выделить весь код
Option Explicit

Dim i

Dim objRegExp
Dim objWshNetwork
Dim collWshCollection


Set objRegExp = WScript.CreateObject("VBScript.RegExp")

With objRegExp
	.IgnoreCase = True
	.Pattern    = "HP_1320_buh.*"
End With

With WScript.CreateObject("WScript.Network")
	Set collWshCollection = .EnumPrinterConnections()
	
	For i = 0 To collWshCollection.Count - 1 Step 2
		If objRegExp.Test(collWshCollection.Item(i + 1)) Then
			.SetDefaultPrinter collWshCollection.Item(i + 1)
			
			Exit For
		End If
	Next
	
	Set collWshCollection = Nothing
End With

Set objRegExp = Nothing

WScript.Quit 0

Умолчальным будет сделан первый же подходящий по шаблону принтер.
Это сообщение посчитали полезным следующие участники:

Отправлено: 14:45, 16-06-2014 | #4


Пользователь


Сообщения: 92
Благодарности: 1

Профиль | Отправить PM | Цитировать


Цитата Iska:
WSH »
Спасибо , но скрипт не работает. Выполняется без ошибок, но поставленную задачу не решает, принтер по умолчанию не меняется
Это сообщение посчитали полезным следующие участники:

Отправлено: 15:19, 16-06-2014 | #5


Пользователь


Сообщения: 92
Благодарности: 1

Профиль | Отправить PM | Цитировать


Цитата sigmatik:
Спасибо , но скрипт не работает. Выполняется без ошибок, но поставленную задачу не решает, принтер по умолчанию не меняется »
Прошу прощения, в скрипте точку пропустил, все работает!. Спасибо.

P.S. а для соискателей могу предложить еще один вариант на powershell

Код: Выделить весь код
$pr
$pr=get-WmiObject -class Win32_printer | where ({$_.name -like "reg1*"}) | foreach { $_.name }
rundll32 printui.dll,PrintUIEntry /y /n $pr

Отправлено: 15:40, 16-06-2014 | #6


Ветеран


Contributor


Сообщения: 27628
Благодарности: 8082

Профиль | Отправить PM | Цитировать


Цитата sigmatik:
могу предложить еще один вариант на powershell »
Вам надо там ещё обрабатывать ситуацию, когда не будет найдено ни одного подходящего принтера. Также не проверял, как будет се6я вести Ваш скрипт с несколькими подходящими под шаблон именами принтеров.

Отправлено: 16:44, 16-06-2014 | #7


Аватара для julia

Пользователь


Сообщения: 71
Благодарности: 8

Профиль | Отправить PM | Цитировать


Цитата Iska:
WSH:
« скрыть »
а как таймер выполнения отсрочить секунд на 30, скрипт отлично работает но принтер иногда подтягивается не сразу

если добавляю

WScript.Sleep 30000

Ошибка: предполагается наличие инструкции

Отправлено: 16:39, 25-01-2022 | #8


Ветеран


Contributor


Сообщения: 2612
Благодарности: 602

Профиль | Отправить PM | Цитировать


Таймер задается в миллисекундах.
А так всё должно работать, возможно в Вашем сценарии используются какие-нибудь вложенные конструкции?

Отправлено: 18:37, 25-01-2022 | #9


Аватара для julia

Пользователь


Сообщения: 71
Благодарности: 8

Профиль | Отправить PM | Цитировать


копипаста из сообщения

только строка с паттерном выглядит так

.Pattern = "\d{3,4}.*"

т.к. название принтеров начинается с трех или четырех цифр в зависимости от модели локального принтера/мфу или номера отдела из четырех цифр в сетевом варианте и дальше различные символы буквы цифры скобки описание

и верхняя строчка скрипта

WScript.Sleep 30000

в итоге ошибка предполагается наличие инструкции
строка 3
символ 1

Последний раз редактировалось julia, 26-01-2022 в 10:49.


Отправлено: 10:09, 26-01-2022 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Принтер по умолчанию по маске имени

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
CMD/BAT - [решено] поиск файла по маске и запись этого имени в переменную ___dima___ Скриптовые языки администрирования Windows 20 18-06-2017 01:46
Разное - [решено] Принтер по умолчанию foma24 Microsoft Windows 2000/XP 6 10-05-2012 16:15
CMD/BAT - [решено] удаление файлов по маске имени hlpain Скриптовые языки администрирования Windows 4 02-09-2011 16:11
Драйвер - [решено] Принтер по умолчанию stranges Microsoft Windows 2000/XP 7 01-06-2011 15:30
Разное - Принтер по умолчанию senseye Microsoft Windows 2000/XP 2 05-11-2009 13:32




 
Переход