@ECHO OFF :: Check Windows version and command line argument(s) IF NOT "%OS%"=="Windows_NT" GOTO Syntax IF "%~1"=="" GOTO Syntax IF NOT "%~2"=="" GOTO Syntax :: Localize variables and enable delayed variable expansion SETLOCAL ENABLEDELAYEDEXPANSION :: Check if DEVCON.EXE is available and if not, offer to download it SET DevconAvailable= SET Download= DEVCON.EXE /? >NUL 2>&1 IF ERRORLEVEL 1 ( SET DevconAvailable=No ECHO This batch file requires Microsoft's DEVCON untility. SET /P Download=Do you want to download it now? [y/N] ) :: Start download if requested IF /I "%Download%"=="Y" ( START "DevCon" "http://support.microsoft.com/default.aspx?scid=kb;EN-US;Q311272" ECHO. ECHO Install the downloaded file and make sure DEVCON.EXE is in the PATH. ECHO Then try again. ) :: Abort if DEVCON.EXE is not available yet IF "%DevconAvailable%"=="No" ( ENDLOCAL GOTO:EOF ) :: Check how many matching printers are found, if any FOR /F %%A IN ('DEVCON Find ^=Printer "%~1*" 2^>NUL ^| FIND.EXE /C "\"') DO SET Matches=%%A IF %Matches% EQU 0 ( CLS ECHO. ECHO ERROR: Specified printer not found GOTO Syntax ) IF %Matches% GTR 1 ECHO %Matches% matching printers found :: Create a directory the driver files will be copied to MD "%~1" >NUL 2>&1 :: Create a batch file "install_driver.bat" to (re)install the driver(s) > "%~1\install_driver.bat" ECHO :: Batch file generated by ExpPrnDr.bat (Export Printer Drivers), >> "%~1\install_driver.bat" ECHO :: written by Rob van der Woude, http://www.robvanderwoude.com >> "%~1\install_driver.bat" ECHO PUSHD "%%~dp0" :: Create an empty readme.txt TYPE NUL > "%~1\readme.txt" :: Find and copy the driver files for the specified printer(s), :: and append the install command(s) to "install_driver.bat" FOR /F "tokens=1-5*" %%A IN ('DEVCON DriverFiles ^=Printer "%~1*"') DO ( IF "%%~B"=="" ( COPY /Y "%%~A" "%~1\" >NUL ) ELSE ( IF /I "%%~A"=="Name:" ( SET Model=%%~B %%~C %%~D %%~E %%~F >> "%~1\readme.txt" ECHO.%%~A !Model! ) IF /I "%%~A %%~B %%~C"=="Driver installed from" ( COPY /Y "%%~D" "%~1\" >NUL SET Inf=%%~nxD >> "%~1\readme.txt" ECHO.%%~A %%~B %%~C !Inf! %%~E >> "%~1\install_driver.bat" ECHO :: The following line will install the printer driver for the !Model! >> "%~1\install_driver.bat" ECHO RUNDLL32.EXE PRINTUI.DLL,PrintUIEntry /ia /b"!Model!" /f"%%~dp0!Inf!" /m"!Model!" ) ) ) :: Close readme.txt >> "%~1\readme.txt" ECHO Install the driver with install_driver.bat :: Close install_driver.bat >> "%~1\install_driver.bat" ECHO POPD ECHO. ECHO The printer driver files for the "%Model%" printer ECHO are copied to the "%~dp0%~1" folder. ECHO. ECHO Use install_driver.bat, located in that folder, to (re)install the driver. ENDLOCAL GOTO:EOF :Syntax ECHO. IF "%Matches%"=="0" ECHO ExpPrnDr.bat (Export Printer Drivers), Version 1.01 for Windows 2000 / XP IF NOT "%Matches%"=="0" ECHO ExpPrnDr.bat, Version 1.01 for Windows 2000 / XP IF NOT "%Matches%"=="0" ECHO Export Printer Drivers ECHO. ECHO Usage: EXPPRNDR printer ECHO. ECHO Where: "printer" is (the first part of) the printer name, e.g. "Epson" ECHO. ECHO Notes: This batch file will copy all the files of the specified printer driver ECHO to a newly created directory with the specified printer name. ECHO This batch file can be used for local printers only. ECHO The specified local printer(s) must be connected and switched on. ECHO This batch file requires Microsoft's DEVCON to create a list of driver ECHO files. If DEVCON is not available, you will be prompted to download it. ECHO A batch file "install_driver.bat" will be created in the driver files ECHO directory; use that batch file to (re)install the printer driver(s). ECHO If multiple printers match the specified name, their drivers will all ECHO be stored in a single directory, and "install_driver.bat" will ECHO (re)install them all. ECHO. ECHO Written by Rob van der Woude ECHO http://www.robvanderwoude.com IF "%OS%"=="Windows_NT" ENDLOCAL IF "%OS%"=="Windows_NT" COLOR 00