Отказ от ответственности: я не программист.У меня есть базовое понимание различных языков, у меня есть общая склонность к технологиям, и я учусь на ходу.Я ломал голову над этой задачей, надеясь, что смогу разобраться, но теперь я застрял.
Мне нужно создать командный файл, который будет запрашивать Windows и предоставит мне имя драйвера.из всех установленных принтеров, и если на машине присутствует определенное имя драйвера, выполните другое действие (в этом случае запустите утилиту командной строки, которая изменит настройки принтера).
Пока что у меня есть "краудсорсинг "некоторый код из различных ресурсов в Интернете, но я не смог успешно заставить командный файл делать то, что я хочу.
КОД:
@echo
setlocal
wmic printer get DriverName >> printerlist.txt
set count=0
FOR /F "skip=1 delims= " %%G IN (printerlist.txt) DO call :loop %%G %%H %%I
:loop
if "%1"=="" goto :endloop
if "%1"=="HP" (
if "%2"=="DeskJet" (
if "%3"=="1000" (
echo Found: HP DeskJet 1000
)
if "%3"=="2000" (
echo Found: HP DeskJet 2000
)
if "%3"=="3000" (
echo Found: HP DeskJet 3000
)
pause
)
)
SHIFT
goto :loop
:endloop
По сути, яСобрал это вместе, как тест для отображения сообщения в CMD, если он найдет одно из трех конкретных имен драйверов принтеров.В конечном итоге я заменю эхо-запрос другой операцией, если я смогу заставить его работать.Я думаю, что должно произойти, что пакетный файл будет захватывать все имена драйверов принтера и заполнять их в файл .txt (эта часть работает нормально).Затем пакетный файл зациклится и заглянет внутрь файла .txt и, используя пробел в качестве разделителя, найдет конкретные модели принтеров, которые я ищу, и отобразит эхо.В настоящий момент, если я запусту этот командный файл, он создаст файл .txt, но затем выйдет без отображения сообщений.Я посмотрел в файле .txt, и один из принтеров находится в файле, например, "HP DeskJet 1000".Если вам интересно, я пропускаю строку 1, потому что там просто написано «DriverName».
Любой совет?