【Windows】PC起動時に接続先に応じて印刷プリンタを自動判別するバッチを作ってみた!

参考にさせて頂いたサイト。

まだまだ勉強不足で、無駄の多い構文になっているかもですが、、、、

@echo off

REM //////////////////// ▽ 接続先1(AREA1) ▽ ////////////////////
:AREA1

echo "AREA1のプリンタが存在するか確認しています"
set COUNT=0
set /a COUNT=COUNT+1
echo %COUNT% 回目 通信中....
if "%COUNT%" == "3" goto AREA2
REM ----- AREA1プリンタが存在するかチェック -----
ping -n 1 192.168.2.201 | find "ms TTL=" > NUL
REM ----------------------------------------

if ERRORLEVEL 1 goto AREA2
timeout /t 5  > nul

REM ----- AREA1プリンタをデフォルトに -------
rundll32 printui.dll,PrintUIEntry /y /n "設定したいプリンターの名称"
echo "AREA1のプリンタを確認。プリンタを設定しました。"
goto END
REM -------------------------------------

goto AREA2

REM //////////////////// △ 接続先1(AREA1) △ ////////////////////


REM //////////////////// ▽ 接続先2(AREA2) ▽ ////////////////////
:AREA2

echo "AREA2のプリンタが存在するか確認しています"

set COUNT=0
set /a COUNT=COUNT+1
echo %COUNT% 回目 通信中....
if "%COUNT%" == "3" goto ERROR OUT
REM ----- AREA2プリンタが存在するかチェック -----
ping -n 1 192.168.1.22 | find "ms TTL=" > NUL
REM ----------------------------------------
if ERRORLEVEL 1 goto ERROR OUT
timeout /t 5  > nul

REM ----- AREA2プリンタをデフォルトに -------
rundll32 printui.dll,PrintUIEntry /y /n "設定したいプリンターの名称"
echo "AREA2のプリンタを確認。プリンタを設定しました。"
goto END
REM -------------------------------------

goto AREA2

REM //////////////////// △ 接続先2(AREA2) △ ////////////////////



:NOT RESPOND
echo "タイムアウトしました。ネットワークに接続されているか確認をして下さい。"
goto end


:ERROR OUT
echo "AREA1もしくはAREA2で起動していることを確認してください。"
goto end


:END
echo "設定が完了しました。"

pause

IFとGOTOを使って処理を分岐させています。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次