【ツール】DOS画面ランチャー（ベータ版）


# はじめに
この頃は勝手にランチャーソフトも使用できないような環境下でしたので
DOSコマンドプロンプトで昔ながらの画面を作ってみました。

## ファイル構成
ランチャ_初期設定.bat
ランチャ_メイン.bat
ランチャ_起動AP設定.bat


## ランチャ_メイン.bat

```bat:ランチャ_メイン.bat

@echo OFF

rem 初期設定

REM =======================
rem 起動時のパス設定を行なう
REM =======================
CALL .\ランチャ_初期設定.bat


rem 一時停止(デバック用)
rem pause

rem カレント設定
cd /d %~dp0


REM *************************************************************
REM *************************************************************
REM 画面１(:menudisp01)
REM *************************************************************
REM *************************************************************
:menudisp01

    REM 画面初期設定
    SET NOW_DISP=1
    SET INPUT_STR=N
    CLS
    color 0A
    REM ********************[画面]*******************************
    echo ★★★画面１ ★★★ 
    echo  %HED_MSG1%
    echo ---【サンプル】---------------------------------------------------------------
    echo   MeMo    ｜テキストメモ
    echo   WinM    ｜WinMerge
    echo   Exl     ｜Excel
    echo   Qiita   ｜Qiita(Webサイト)
    echo   XXXX    ｜
    echo   XXXX    ｜
    echo ---【XXXXXXXXXXXXXXX】--------------------------------------------------------
    echo   XXXX    ｜
    echo   XXXX    ｜
    echo   XXXX    ｜
    echo   XXXX    ｜
    echo   XXXX    ｜
    echo   XXXX    ｜
    echo --------------------------------------------------------------------------------
    rem 入力待ち
    SET /P INPUT_STR=">"

    rem 設定画面数以下の場合は最初の画面に
    IF %NOW_DISP% lss %DISP_CNT% (
        IF /I %INPUT_STR%==N   GOTO :menudisp02
    ) ELSE (
        IF /I %INPUT_STR%==N   GOTO :menudisp01
    )

    GOTO :APP_RUN

REM *************************************************************
REM *************************************************************
REM 画面２(:menudisp02)
REM *************************************************************
REM *************************************************************
:menudisp02
    REM 画面初期設定
    SET NOW_DISP=2
    SET INPUT_STR=N
    CLS
    color 0A
    REM ********************[画面]*******************************
    echo ★★★画面２★★★
    echo  %HED_MSG2%
    echo ---【XXXXXXXXXXXXXXX】---------------------------------------------------------
    echo   XXXX    ｜
    echo   XXXX    ｜
    echo   XXXX    ｜
    echo   XXXX    ｜
    echo   XXXX    ｜

    echo ---【マイフォルダ】-------------------------------------------------------------
    echo   DownLoad｜ダウンロードフォルダ
    echo   PDF     ｜ＰＤＦ出力先
    echo   Desktop ｜ディスクトップ
    echo   Pictur  ｜ピクチャー
    echo   Document｜ドキュメント
    echo     XXXX  ｜
    echo ---【その他】------------------------------------------------------------------
    echo   SENDTO  ｜送るフォルダを開く
    echo   STARTUP ｜スタートアップフォルダを開く
    echo   CMD   　｜コマンドプロント画面
    echo   DEN     ｜電卓
    echo   XXXX    ｜
    echo ---【XXXXXXXXXXXXXXX】---------------------------------------------------------
    echo   XXXX    ｜
    echo   XXXX    ｜
    echo   XXXX    ｜
    echo   XXXX    ｜
    echo   XXXX    ｜
    echo -------------------------------------------------------------------------------

    rem 入力待ち
    SET /P INPUT_STR=">"

    rem 設定画面数以下の場合は最初の画面に
    IF %NOW_DISP% lss %DISP_CNT% (
        IF /I %INPUT_STR%==N   GOTO :menudisp03
    ) ELSE (
        IF /I %INPUT_STR%==N   GOTO :menudisp01
    )

    GOTO :APP_RUN

REM *************************************************************
REM *************************************************************
REM 画面３(:menudisp03)
REM *************************************************************
REM *************************************************************
:menudisp03
    REM 画面初期設定
    SET NOW_DISP=3
    SET INPUT_STR=N
    CLS
    color 0A
    REM ********************[画面]*******************************
    echo ★★★画面３ ★★★
    echo  %HED_MSG3%
    echo ---【XXXXXXXXXXXXXXX】---------------------------------------------------------
    echo   XXXX    ｜
    echo   XXXX    ｜
    echo   XXXX    ｜
    echo   XXXX    ｜
    echo   XXXX    ｜
    echo   XXXX    ｜
    echo ---【XXXXXXXXXXXXXXX】---------------------------------------------------------
    echo   XXXX    ｜
    echo   XXXX    ｜
    echo   XXXX    ｜
    echo   XXXX    ｜
    echo   XXXX    ｜
    echo   XXXX    ｜
    echo ---【XXXXXXXXXXXXXXX】---------------------------------------------------------
    echo   XXXX    ｜
    echo   XXXX    ｜
    echo   XXXX    ｜
    echo   XXXX    ｜
    echo   XXXX    ｜
    echo --------------------------------------------------------------------------------

    rem 入力待ち
    SET /P INPUT_STR=">"

    rem 設定画面数以下の場合は最初の画面に
    IF %NOW_DISP% lss %DISP_CNT% (
        IF /I %INPUT_STR%==N   GOTO :menudisp04
    ) ELSE (
        IF /I %INPUT_STR%==N   GOTO :menudisp01
    )
    GOTO :APP_RUN

REM *************************************************************
REM *************************************************************
REM 画面４(:menudisp04)
REM *************************************************************
REM *************************************************************
:menudisp04
    REM 画面初期設定
    SET NOW_DISP=4
    SET INPUT_STR=N
    CLS
    color 0A
    REM ********************[画面]*******************************
    echo ★★★画面４ ★★★
    echo  %HED_MSG4%
    echo ---【XXXXXXXXXXXXXXX】---------------------------------------------------------
    echo   XXXX    ｜
    echo   XXXX    ｜
    echo   XXXX    ｜
    echo   XXXX    ｜
    echo   XXXX    ｜
    echo ---【XXXXXXXXXXXXXXX】---------------------------------------------------------
    echo   XXXX    ｜
    echo   XXXX    ｜
    echo   XXXX    ｜
    echo   XXXX    ｜
    echo   XXXX    ｜
    echo ---【XXXXXXXXXXXXXXX】---------------------------------------------------------
    echo   XXXX    ｜
    echo   XXXX    ｜
    echo   XXXX    ｜
    echo   XXXX    ｜
    echo   XXXX    ｜
    echo --------------------------------------------------------------------------------

    rem 入力待ち
    SET /P INPUT_STR=">"

    IF /I %INPUT_STR%==N   GOTO :menudisp01

    GOTO :APP_RUN

REM *************************************************************
REM 実行部分
REM *************************************************************
:APP_RUN

    REM =======================
    REM 起動アプリ設定サブへ
    REM =======================
   CALL .\ランチャ_起動AP設定.bat


   rem 入力パラメータをリセットする
   SET INPUT_STR=N

   REM その画面にジャンプ
   IF %NOW_DISP%==1 GOTO :menudisp01
   IF %NOW_DISP%==2 GOTO :menudisp02
   IF %NOW_DISP%==3 GOTO :menudisp03
   IF %NOW_DISP%==4 GOTO :menudisp04


GOTO :menudisp01

```

## ランチャ_初期設定.bat

```bat:ランチャ_初期設定.bat
@echo OFF

rem カレント設定
cd /d %~dp0


REM *************************************************************
REM 初期設定
REM *************************************************************

rem 待ち時間
SET WAIT_TIME=5

rem EmEditorのパス定義
SET EmEditor_EXE="C:\Program Files\EmEditor\EmEditor.exe"

rem サクラエディタのパス定義
SET Sakura_EXE="C:\Program Files (x86)\sakura\sakura.exe"
rem 秀丸のパス定義
SET Hidemaru_EXE="C:\Program Files (x86)\Hidemaru\Hidemaru.exe"

rem Cassava Editorのパス定義
SET Cassava_Editor="C:\myTool\Cassava\Cassava.exe"

rem メインで使用するエディタの設定
SET STRT_EDITER= %Sakura_EXE%

rem お気に入りのエディタ設定
SET MY_EDITER=%Sakura_EXE%


rem Windows PowerShellのパス(コマンド込み) 
SET PowerShell="%APPDATA%\Microsoft\Windows\Start Menu\Programs\Windows PowerShell\Windows PowerShell.lnk" -Command

rem エクスプローラのパス定義（パス設定なし）
SET WinExplore_exe=

rem サブエクスプローラーのパス定義
SET SubExplore_exe="C:\Asr\AsrLoad.exe "
SET SubExplore_Name="C:\Asr\AsrLoad.exe "

rem エクスプローラのパス定義（パス設定なし）
SET WinExplore_exe=
SET WinExplore_Name=Explorer

rem サブエクスプローラ1ーのパス定義
SET Sub1Explore_exe="C:\Tool\xf13\xf64.exe "
SET Sub1Explore_Name=XF

rem URLPASS
SET URL_PASS="http://test.co.jp/"

REM 未入力の場合に次の画面に行くように
SET INPUT_STR=N

REM 現在の画面
SET NOW_DISP=01

rem ===================================
rem メニュー画面表示
rem ===================================
SET DISP_CNT=3

SET HED_MSG_NEXT=[N:次]
SET HED_MSG_MAIN=[メイン]
SET HED_MSG_EDIT=[EDIT：編集]
rem SET HED_MSG_EXP=[EXP：Explore設定]
SET HED_MSG_EXP=


SET H_DSP1_N=メイン
SET H_DSP2_N=業務
SET H_DSP3_N=ツール
SET H_DSP4_N=その他

rem 表示数より大きい場合は空白
IF 1 gtr %DISP_CNT% (
	SET H_DSP1_N=
)

rem 表示数より大きい場合は空白
IF 2 gtr %DISP_CNT% (
	SET H_DSP2_N=

)
rem 表示数より大きい場合は空白
IF 3 gtr %DISP_CNT% (
	SET H_DSP3_N=

)

rem 表示数より大きい場合は空白
IF 4 gtr %DISP_CNT% (
	SET H_DSP4_N=
)



SET H_DSP1_A=[%H_DSP1_N%]
SET H_DSP2_A=[%H_DSP2_N%]
SET H_DSP3_A=[%H_DSP3_N%]
SET H_DSP4_A=[%H_DSP4_N%]

SET HED_MSG_DISPNOW=

SET HED_MSG1=画面： %H_DSP1_A% %H_DSP2_N% %H_DSP3_N% %H_DSP4_N%       %HED_MSG_NEXT% %HED_MSG_EDIT% %HED_MSG_EXP%
SET HED_MSG2=画面： %H_DSP1_N% %H_DSP2_A% %H_DSP3_N% %H_DSP4_N%       %HED_MSG_NEXT% %HED_MSG_EDIT% %HED_MSG_EXP%
SET HED_MSG3=画面： %H_DSP1_N% %H_DSP2_N% %H_DSP3_A% %H_DSP4_N%       %HED_MSG_NEXT% %HED_MSG_EDIT% %HED_MSG_EXP%
SET HED_MSG4=画面： %H_DSP1_N% %H_DSP2_N% %H_DSP3_N% %H_DSP4_A%       %HED_MSG_NEXT% %HED_MSG_EDIT% %HED_MSG_EXP%


rem 一時停止(デバック用)
rem pause



```

## ランチャ_起動AP設定.bat

```bat:ランチャ_起動AP設定.bat

@echo OFF

    rem カレント設定
    cd /d %~dp0

    REM 実行確認ﾌﾗｸﾞOFFにする
    set RUN_FLG=0

    REM =======================================================================_
    REM 設定       
    REM =======================================================================_
    rem 開くエクスプローラの設定
    IF /I %INPUT_STR%==SET_EXP    GOTO :SUB_EXPLORER_SET
    rem 画面編集
    IF /I %INPUT_STR%==EDIT       GOTO :SUB_EDIT

    REM =======================================================================_
    REM アプリケーション             
    REM =======================================================================_
    REM 電卓
    IF /I %INPUT_STR%==DEN         set RUN_FLG=1 & START  %windir%\system32\calc.exe
    REM EmEditer
    IF /I %INPUT_STR%==EM          set RUN_FLG=1 & START " "  %EmEditor_EXE% 
    REM WinMerge
    IF /I %INPUT_STR%==DIFF        set RUN_FLG=1 & START " "  "C:\Program Files\WinMerge\WinMergeU.exe"
    REM 秀丸
    IF /I %INPUT_STR%==HIDE        set RUN_FLG=1 & START  %Hidemaru_EXE%
    REM サクラエディタ
    IF /I %INPUT_STR%==SAKU        set RUN_FLG=1 & START  %Sakura_EXE%

    REM chrome
    IF /I %INPUT_STR%==CHROME      set RUN_FLG=1 & START " "  "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --user-data-dir=C:\XXXXXX\XXXXXX

    REM コマンドプロンプトを起動
    IF /I %INPUT_STR%==CMD         set RUN_FLG=1 & START  cmd

    REM =======================================================================_
    REM Excelで作成したコマンド文入れ
    REM  RUN_FLG=1 START コマンドで実行
    REM  RUN_FLG=2 クリップボードに格納
    REM =======================================================================_

    rem テキストメモ	 
    rem IF /I %INPUT_STR%==MEMO   set RUN_FLG=1 & START "*" C:\_MyDir\個人用メモ.txt	 
    IF /I %INPUT_STR%==MEMO   set RUN_FLG=2 & set ClipStr=C:\_MyDir\個人用メモ.txt
    
    rem WinMerge	 
    IF /I %INPUT_STR%==WINM   set RUN_FLG=1 & START "*" "C:\Program Files\WinMerge\WinMergeU.exe"	 
    rem IF /I %INPUT_STR%==WinM   set RUN_FLG=2 & set ClipStr="C:\Program Files\WinMerge\WinMergeU.exe"
    
    rem Excel	 
    IF /I %INPUT_STR%==EXL    set RUN_FLG=1 & START "*" "C:\Program Files\Microsoft Office\root\Office16\EXCEL.EXE"	 
    rem IF /I %INPUT_STR%==EXL    set RUN_FLG=2 & set ClipStr="C:\Program Files\Microsoft Office\root\Office16\EXCEL.EXE"
    
    rem Qiita(Webサイト)	 
    IF /I %INPUT_STR%==QIITA  set RUN_FLG=1 & START "*" https://qiita.com/	 
    rem IF /I %INPUT_STR%==QIITA  set RUN_FLG=2 & set ClipStr=https://qiita.com/


    REM =======================================================================_
    REM 個人ファイルフォルダ等
    REM =======================================================================_

    REM 自分用_Excelメモ.xlsm
    IF /I %INPUT_STR%==EXMEMO      set RUN_FLG=1 & START  " "  "C:\XXXXXXX\自分用_Excelメモ.xlsm"

    REM 自分用_メモ.txt
	IF /I %INPUT_STR%==MEMO (
		set RUN_FLG=1 
		START  " "  %Sakura_EXE% -GROUP=1 
		START  " "  %Sakura_EXE% -GROUP=9 "C:\XXXXX\自分用_メモ.txt"
		START  " "  %Sakura_EXE% -GROUP=9 "C:\XXXXX\自分用_今日の作業.txt"
	)



    REM =======================================================================_
    REM 自分で好きなコマンドを設定
    REM =======================================================================_
    rem 例)エクスプローラーで開く
    IF /I %INPUT_STR%==EXPLO_    set RUN_FLG=1 & START "*" %MY_Explorer% F:\
    rem 例)サクラエディタの場合グループ分けして出力が可能
    IF /I %INPUT_STR%==SAKUEDT_     set RUN_FLG=1 & START "*"  %STRT_EDITER% -GROUP=9 "D:\my_dir\メモ.txt"
    rem 例)ファイルを開く
　　IF /I %INPUT_STR%==FI_OP_      set RUN_FLG=1 & START "*" "D:\テスト.xlsx"
	rem 例)複数開きたい場合
    IF /I %INPUT_STR%==MULTIRUN (
       set RUN_FLG=1 
		START "*" %Notepad% D:/XXXXXXXErr.log
		START "*" %Notepad% D:/XXXXXXXXXX.log
	)

    REM =======================================================================_
    REM クリップボード保存
    REM =======================================================================_
	IF /I %RUN_FLG%==2 (
		echo %ClipStr%|clip 
		echo クリップボードに保存しました 
		Timeout 1
		set RUN_FLG=1
	)



    REM =======================================================================_
    REM WINユーザーファイル先
    REM =======================================================================_
    IF /I %INPUT_STR%==DISKTOP   set RUN_FLG=1 & START "*"  %MY_Explorer% %USERPROFILE%\Desktop\
    IF /I %INPUT_STR%==DOWNLOAD  set RUN_FLG=1 & START "*"  %MY_Explorer% %USERPROFILE%\Downloads\
    IF /I %INPUT_STR%==PICTUR    set RUN_FLG=1 & START "*"  %MY_Explorer% %USERPROFILE%\Pictures\
    IF /I %INPUT_STR%==DOCUMENT  set RUN_FLG=1 & START "*"  %MY_Explorer% %USERPROFILE%\Documents\


    REM 「送る」フォルダを開く
    IF /I %INPUT_STR%==SENDTO      set RUN_FLG=1 & START " "  "shell:sendto"

     REM 「スタートアップ」フォルダを開く
    IF /I %INPUT_STR%==STARTUP     set RUN_FLG=1 & start "" "shell:common startup"



GOTO :FileEnd
REM ---[SUB_EDIT]--------------------------------------------------------
REM サブルーチン)エディタ編集画面
REM --------------------------------------------------------------------
:SUB_EDIT

    set RUN_FLG=1 

    echo 何を編集しますか？
    echo *****************************************
    echo 0:すべて
    echo 1:画面/アプリ設定
    echo 2:初期設定
    echo 3:画面設定
    echo 4:アプリ設定
    echo *****************************************
    rem 入力待ち
    SET /P INPUT_STR=">"

    rem 画面編集
    IF /I %INPUT_STR%==0 (
       START " "  %STRT_EDITER% -GROUP=3 ".\ランチャ_初期設定.bat"
       START " "  %STRT_EDITER% -GROUP=3 ".\ランチャ_メイン.bat"
       START " "  %STRT_EDITER% -GROUP=3 ".\ランチャ_起動AP設定.bat"
    )

    IF /I %INPUT_STR%==1 (
       START " "  %STRT_EDITER% -GROUP=3 ".\ランチャ_メイン.bat"
       START " "  %STRT_EDITER% -GROUP=3 ".\ランチャ_起動AP設定.bat"
    )

    IF /I %INPUT_STR%==2 (
       START " "  %STRT_EDITER% -GROUP=3 ".\ランチャ_初期設定.bat"
    )
    IF /I %INPUT_STR%==3 (
       START " "  %STRT_EDITER% -GROUP=3 ".\ランチャ_メイン.bat"
    )
    IF /I %INPUT_STR%==4 (
      START " "  %STRT_EDITER% -GROUP=3 ".\ランチャ_起動AP設定.bat"
    )

    IF /I %INPUT_STR%==4 (
       START " "  %STRT_EDITER% -GROUP=3 ".\ランチャ_メイン.bat"
       START " "  %STRT_EDITER% -GROUP=3 ".\ランチャ_起動AP設定.bat"
    )

GOTO :FileEnd
REM ---[SUB]------------------------------------------------------------
REM サブルーチン)[Explorer]どちらを使用するか
REM --------------------------------------------------------------------
:SUB_EXPLORER_SET

    set RUN_FLG=1 

    echo どちらで開くますか？
    echo [1:%WinExplore_Name%]
    echo [2:%Sub1Explore_Name%]  

    rem 入力待ち
    SET /P INPUT_STR=">"
    rem 
    IF /I %INPUT_STR%==1  SET MY_Explorer=%WinExplore_exe%
    IF /I %INPUT_STR%==2  SET MY_Explorer=%Sub1Explore_exe% 

GOTO :FileEnd

:FileEnd

    REM 該当コマンドがない場合
    IF %RUN_FLG%==0 (
        echo "そのコマンドないよ[%INPUT_STR%]"
        timeout 3

    )

REM ---[FileEnd]--------------------------------------------------------
REM サブルーチン)処理終了
REM バッチ内の処理の終了の飛び先
REM --------------------------------------------------------------------
:FileEnd


```


## 起動コマンド作成用Excelマクロ

いちいち新しいコマンド文を書くのが面倒なのでマクロで管理できるようにします

|A|B|C|D|E|F|G|H|I|
|:-|:-|:-|:-|:-|:-|:-|:-|:-|
|| 名前 | コマンド |パス |コメント |コマンド文 |クリップボード| 表示画面用| | |　
||[ツール名] | [コマンド(大文字英数)] | [パス [コマンドライン]] | ="rem " & B2 | =" IF /I %INPUT_STR%==" & LEFTB(UPPER(C2)&REPT(" ",6),6) & " set RUN_FLG=1 & START "&CHAR(34)&"*"&CHAR(34)&" "&D2 |=" IF /I %INPUT_STR%==" & LEFTB(UPPER(C2)&REPT(" ",6),6) & " set RUN_FLG=2 & set ClipStr="&D2| = "    echo   " & LEFTB(C2&REPT(" ",6),6) & "｜" & B2 | 　|


こんな感じの画面になるので

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/61019/f8550488-1ed5-4f48-b984-ea056827b866.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/61019/e177b94a-fe9f-4129-b4cd-7c383ef9790f.png)



![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/61019/7350ee05-c2a8-49e4-8560-bbad04077277.png)


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/61019/d4fa88db-1ccd-4122-a6f2-882a0461d682.png)

```tex
rem テキストメモ	 IF /I %INPUT_STR%==MEMO   set RUN_FLG=1 & START "*" C:\_MyDir\個人用メモ.txt	 IF /I %INPUT_STR%==MEMO   set RUN_FLG=2 & set ClipStr=C:\_MyDir\個人用メモ.txt
rem WinMerge	 IF /I %INPUT_STR%==WINM   set RUN_FLG=1 & START "*" "C:\Program Files\WinMerge\WinMergeU.exe"	 IF /I %INPUT_STR%==WINM   set RUN_FLG=2 & set ClipStr="C:\Program Files\WinMerge\WinMergeU.exe"
rem Excel	 IF /I %INPUT_STR%==EXL    set RUN_FLG=1 & START "*" "C:\Program Files\Microsoft Office\root\Office16\EXCEL.EXE"	 IF /I %INPUT_STR%==EXL    set RUN_FLG=2 & set ClipStr="C:\Program Files\Microsoft Office\root\Office16\EXCEL.EXE"
rem Qiita(Webサイト)	 IF /I %INPUT_STR%==QIITA  set RUN_FLG=1 & START "*" https://qiita.com/	 IF /I %INPUT_STR%==QIITA  set RUN_FLG=2 & set ClipStr=https://qiita.com/

```

```tex
rem テキストメモ	 
IF /I %INPUT_STR%==MEMO   set RUN_FLG=1 & START "*" C:\_MyDir\個人用メモ.txt	 
IF /I %INPUT_STR%==MEMO   set RUN_FLG=2 & set ClipStr=C:\_MyDir\個人用メモ.txt
rem WinMerge	 
IF /I %INPUT_STR%==WINM   set RUN_FLG=1 & START "*" "C:\Program Files\WinMerge\WinMergeU.exe"	 
IF /I %INPUT_STR%==WINM   set RUN_FLG=2 & set ClipStr="C:\Program Files\WinMerge\WinMergeU.exe"
rem Excel	 
IF /I %INPUT_STR%==EXL    set RUN_FLG=1 & START "*" "C:\Program Files\Microsoft Office\root\Office16\EXCEL.EXE"	 
IF /I %INPUT_STR%==EXL    set RUN_FLG=2 & set ClipStr="C:\Program Files\Microsoft Office\root\Office16\EXCEL.EXE"
rem Qiita(Webサイト)	 
IF /I %INPUT_STR%==QIITA  set RUN_FLG=1 & START "*" https://qiita.com/	 
IF /I %INPUT_STR%==QIITA  set RUN_FLG=2 & set ClipStr=https://qiita.com/

```




```
 echo   MeMo  ｜テキストメモ
 echo   WinM  ｜WinMerge
 echo   Exl   ｜Excel
 echo   Qiita ｜Qiita(Webサイト)

```