कमांड लाइन से टेक्स्ट फ़ाइल तक प्रिंटरों की सूची बनाएं


26

क्या कोई कमांड है जिसे कमांड लाइन से इंस्टॉल किए गए प्रिंटर की सूची और उनके स्थान को मैप करने के लिए उपयोग किया जा सकता है, यदि एक पाठ फ़ाइल में मैप किया गया है? या शायद एक प्रोग्राम जिसे मैं कमांड लाइन से चला सकता हूं जो ऐसा करेगा?

जवाबों:


25

Windows XP में prnmngr का उपयोग करें:

PRNMNGR -l >> C:\printers.txt

Windows Vista और उसके बाद, PowerShell का उपयोग करें:

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

नोट: यदि आपको अपने अधिकारों के आधार पर विस्टा + पर C: \ पर फ़ाइल लिखने का प्रयास किया गया है, तो आपको एक त्रुटि मिल सकती है, और PowerShell को कैसे देखा गया।

विंडोज 2000 के लिए:

XP से PrnMngr.vbs फ़ाइल (/ Windows / System32 फ़ोल्डर में स्थित) Windows 2000 पर काम करती है। बस इसे XP मशीन से 2000 मशीन पर ढूंढें और इसे कॉपी करें:

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

मैंने पाया कि यह किसी कारण से मेरे उपयोगकर्ता के डेस्कटॉप से ​​नहीं चलेगा, लेकिन जब मैंने .VBS को C की जड़ में कॉपी किया तो यह ठीक चला।


खूबसूरती से काम किया!

11

मैं उपयोग करता हूं:

wmic printer list brief

या

wmic printer get name

यह सिर्फ उस सिस्टम से जुड़ी प्रिंटर की एक छोटी सूची दिखाता है जिस पर आप कमांड चलाते हैं। यह भी दिखाएगा कि अगर कोई नेटवर्क प्रिंटर है तो कंप्यूटर किस प्रिंटर से जुड़ा है।

आप सिस्टम पर स्थापित प्रत्येक प्रिंटर के लिए कॉन्फ़िगरेशन की एक बहुत विस्तृत सूची प्राप्त करने के लिए इसका उपयोग कर सकते हैं:

wmic printer list full

इसे टेक्स्ट फ़ाइल में आउटपुट करने के लिए, इसे कमांड के अंत में जोड़ें:

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

उदाहरण:

wmic printer list brief >> c:\users\admin\documents\printerlist.txt

यह स्वीकृत उत्तर होना चाहिए।
James Draper

4

कभी-कभी आप win7 में PS का उपयोग नहीं करना चाहते हैं (मेरे पास एक ऐसा एप्लिकेशन है जो मुझे दूरस्थ पीसी पर पृष्ठभूमि में प्रशासनिक कार्य करने देता है, लेकिन यह शक्तियां का उपयोग नहीं करता है)। उल्लिखित XP विजुअल बेसिक स्क्रिप्ट विन 7 के लिए निम्नलिखित फ़ोल्डर में पाया जा सकता है:

C:\Windows\System32\Printing_Admin_Scripts\en-US

1

नोट: Windows XP के लिए, पहले डिफ़ॉल्ट स्क्रिप्ट होस्ट को CScript में बदलना सुनिश्चित करें

C:\CScript //H:CScript

अन्यथा आपको ऐसा करने के लिए एक संदेश मिलेगा और आपकी प्रिंटर.टेक्स्ट फ़ाइल रिक्त होगी।


1

विंडोज 8 / सर्वर 2012 के साथ शुरू, वहाँ एक है get-printer PowerShell cmdlet:

https://technet.microsoft.com/en-us/library/hh918358%28v=wps.630%29.aspx?f=255&MSPPError=-2147217396


जबकि यह सैद्धांतिक रूप से प्रश्न का उत्तर दे सकता है, यह बेहतर होगा यहां उत्तर के आवश्यक भागों को शामिल करने के लिए, और संदर्भ के लिए लिंक प्रदान करें।
Canadian Luke

0

तो यह मेरा समाधान है:

;******************
;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
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.