2010-04-28 02:47:03 +0000 2010-04-28 02:47:03 +0000
30
30
Advertisement

Lista drukarek z wiersza poleceń do pliku tekstowego

Advertisement

Czy istnieje polecenie, które może być użyte z wiersza poleceń, aby wyprowadzić listę zainstalowanych drukarek i ich lokalizacji, jeśli są zmapowane, do pliku tekstowego? A może program, który mogę uruchomić z wiersza poleceń, który by to zrobił?

Advertisement
Advertisement

Odpowiedzi (7)

28
28
28
2010-04-28 03:18:35 +0000

W Windows XP użyj prntmngr:

PRNMNGR -l >> C:\printers.txt

W Windows Vista i nowszych, użyj PowerShell:

get-WmiObject -class Win32_printer | ft name, systemName, shareName >> c:\printers.txt

Uwaga: Możesz otrzymać błąd, jeśli spróbujesz zapisać plik do C:\ na Vista+, w zależności od Twoich praw i sposobu, w jaki PowerShell został wywołany.

Dla Windows 2000:

Plik PrnMngr.vbs z XP (znajdujący się w folderze /Windows/System32) działa w Windows 2000. Wystarczy znaleźć i skopiować go na maszynę 2000 z maszyny XP i uruchomić go z:

cscript prnmngr.vbs -l >> c:\printers.txt

Znalazłem, że z jakiegoś powodu nie chciał się uruchomić z pulpitu mojego użytkownika, ale kiedy skopiowałem .VBS do katalogu głównego C:, działał dobrze.

18
18
18
2017-05-11 18:44:28 +0000

Używam:

wmic printer list brief

OR

wmic printer get name

To tylko pokazuje krótką listę drukarek podłączonych do systemu, na którym uruchamiasz polecenie. Pokazuje również, do jakiego komputera podłączona jest drukarka, jeśli jest to drukarka sieciowa.

Możesz również użyć tego polecenia, aby uzyskać bardzo szczegółową listę konfiguracji każdej drukarki zainstalowanej w systemie:

wmic printer list full

Aby wypisać ją do pliku tekstowego, dodaj to na końcu polecenia:

>>"[directory]\[filename].txt"

Przykład:

wmic printer list brief >> c:\users\admin\documents\printerlist.txt
```.
4
Advertisement
4
4
2014-04-16 14:09:17 +0000
Advertisement

Czasami nie chcesz używać PS w Win7 (mam aplikację, która pozwala mi wykonywać prace administracyjne w tle na zdalnych komputerach, ale nie używa powershella). Wspomniane skrypty XP visual basic można znaleźć w następującym folderze dla Win7:

C:\Windows\System32\Printing_Admin_Scripts\en-US
2
2
2
2016-08-03 19:56:20 +0000

Począwszy od Windows 8 / Server 2012, istnieje get-printer cmdlet PowerShell: https://technet.microsoft.com/en-us/library/hh918358%28v=wps.630%29.aspx?f=255&MSPPError=-2147217396

1
Advertisement
1
1
2013-03-08 17:19:12 +0000
Advertisement

Uwaga: Dla Windows XP, upewnij się, że zmieniłeś domyślnego hosta skryptu na CScript najpierw

C:\CScript //H:CScript

w przeciwnym razie otrzymasz komunikat informujący Cię o tym, a Twój plik printers.txt będzie pusty.

0
0
0
2019-04-17 19:50:16 +0000

Użyj Powershell.

[System.Drawing.Printing.PrinterSettings]::InstalledPrinters

0
Advertisement
0
0
2018-07-06 15:48:07 +0000
Advertisement

więc to jest moje rozwiązanie:

; ******************
;ALLOCATING CONSOLE
; ******************
; cmd calls hidden

global cPid
DetectHiddenWindows, on
Run, %comspec% /k ,,Hide UseErrorLevel,cPid
WinWait, ahk_pid %cPid%,, 1
DllCall("AttachConsole","uint",cPid)
hCon:=DllCall("CreateFile","str","CONOUT$","uint",0xC0000000,"uint",7,"uint",0,"uint",3,"uint",0,"uint",0)

; *******GET PRINTER NAMES**********

AllPrintersNameClearArray := strSplit(StrReplace(StrReplace(StrReplace(StrReplace("|" StrReplace(StrReplace(StrReplace(RunWaitOne("wmic printer get name")," ","")," `r",""),"`r",""),"|NAME`n",""),"`n","|"),"||","",All),"|","`n"),"`n")

RunWaitOne(command) {

    objShell := ComObjCreate("WScript.Shell")
    objExec := objShell.Exec(command)
    strStdOut := ""
    while, !objExec.StdOut.AtEndOfStream
    strStdOut := objExec.StdOut.ReadAll()
    return %strStdOut%
}

; ****Clean at the end*****

Finish:
DllCall("CloseHandle", "uint", hCon)
DllCall("FreeConsole")
Process, Close, %cPid%
ExitApp
return
Advertisement

Pytania pokrewne

3
19
10
28
9
Advertisement
Advertisement