いつも使うファイルを開くついでにいろいろできるバッチ
コピペで使えます。
以下の部分だけ自分のものに差し替えてください。
SET WORK_DIR_PATH=★作業フォルダフルパス(後ろにバクスラあり(例:C:\Users\work\))★
SET WORK_FILENAME=★いつも使う拡張子抜きのExcelファイル名(例:work)★
@ECHO OFF
rem ======================================
rem SETTING PARAMETER
rem ======================================
SET SPLIT=======================================================================================================================================================================
SET TASK_CHECK_FILE=C:\Users\%USERNAME%\TASK_CHECK_FOR_START.txt
SET WORK_DIR_PATH=★作業フォルダフルパス(後ろにバクスラあり(例:C:\Users\work\))★
SET WORK_FILENAME=★いつも使う拡張子抜きのExcelファイル名(例:work)★
rem ======================================
rem MAIN
rem ======================================
SETLOCAL ENABLEDELAYEDEXPANSION
CALL :START
CALL :CHECK
IF %ERRORLEVEL%==1 (EXIT)
CALL :BACKUP
CALL :CALL_ARCHIVE
ENDLOCAL
EXIT
rem ======================================
rem FUNCTION START
rem ======================================
:START
ECHO %SPLIT%
ECHO HELLO
POWERSHELL SLEEP 0.5
ECHO %SPLIT%
ECHO %DATE% %TIME%
POWERSHELL SLEEP 0.5
ECHO %SPLIT%
NETSH INTERFACE IPV4 SHOW INTERFACES
POWERSHELL SLEEP 0.5
ECHO %SPLIT%
CHKDSK C:
POWERSHELL SLEEP 0.5
ECHO %SPLIT%
ECHO %SPLIT%
ECHO " ## ## ####### #### #### ##### ## ## ";
ECHO " ## ## ## # ## ## ## ## ## ### ### ";
ECHO " ## ## ## # ## ## ## ## ####### ";
ECHO " ## # ## #### ## ## ## ## ####### ";
ECHO " ####### ## # ## # ## ## ## ## # ## ";
ECHO " ### ### ## # ## ## ## ## ## ## ## ## ";
ECHO " ## ## ####### ####### #### ##### ## ## ";
ECHO %SPLIT%
ECHO %SPLIT%
EXIT /B 0
rem ======================================
rem FUNCTION CHECK
rem ======================================
:CHECK
SET /P ASK_CHECK=START CHECKING?(Y/N)
IF /I NOT %ASK_CHECK%==Y (EXIT /B 0)
TASKLIST /V /FI "STATUS eq RUNNING" /FI "MEMUSAGE gt 100000" | FIND /C /V "" > %TASK_CHECK_FILE%
SET /P ASK_TASK_NUM= < %TASK_CHECK_FILE%
SET /A ASK_TASK_NUM=%ASK_TASK_NUM%-3
DEL %TASK_CHECK_FILE%
ECHO %SPLIT%
ECHO %SPLIT%
ECHO " #### ## ## ####### #### ### ## #### ## ## #### ";
ECHO " ## ## ## ## ## # ## ## ## ## ## ### ## ## ## ";
ECHO " ## ## ## ## # ## ## ## ## #### ## ## ";
ECHO " ## ####### #### ## #### ## ## #### ## ";
ECHO " ## ## ## ## # ## ## ## ## ## ### ## ### ";
ECHO " ## ## ## ## ## # ## ## ## ## ## ## ## ## ## ";
ECHO " #### ## ## ####### #### ### ## #### ## ## ##### ";
ECHO %SPLIT%
ECHO %SPLIT%
ECHO ★RUNNING TASKS
TASKLIST /V /FI "STATUS eq RUNNING" | FIND /V "N/A"
ECHO %SPLIT%
ECHO %SPLIT%
ECHO ★MEMORY USAGE OVER 100MB
TASKLIST /V /FI "MEMUSAGE gt 100000" | FIND /V "N/A"
POWERSHELL SLEEP 0.5
ECHO %SPLIT%
ECHO %SPLIT%
ECHO " #### ## ## ####### #### ### ## #### ##### ## ## ###### #### ####### ###### ####### ";
ECHO " ## ## ## ## ## # ## ## ## ## ## ## ## ## ### ### ## ## ## ## # # ## # ## # ";
ECHO " ## ## ## ## # ## ## ## ## ## ## ####### ## ## ## ## # ## ## # ";
ECHO " ## ####### #### ## #### ## ## ## ####### ##### ## #### ## #### ";
ECHO " ## ## ## ## # ## ## ## ## ## ## ## # ## ## ## # ## # ## ## # ";
ECHO " ## ## ## ## ## # ## ## ## ## ## ## ## ## ## ## ## ## ## ## # ## ## # ";
ECHO " #### ## ## ####### #### ### ## #### ##### ## ## #### ####### ####### #### ####### ";
ECHO %SPLIT%
ECHO %SPLIT%
ECHO THE NUMBER OF HEADY TASKS IS %ASK_TASK_NUM%.
SET /P ASK_START=ARE YOU SURE TO CONTINUE STARTING SYSTEM?(Y/N)
IF /I NOT %ASK_START%==Y (
ECHO SO, SHUTDOWN STARTING SYSTEM.
POWERSHELL SLEEP 0.5
ECHO GOOD BY
POWERSHELL SLEEP 0.5
EXIT /B 1
)
ECHO OK. CONTINUE STARTING SYSTEM
POWERSHELL SLEEP 0.5
EXIT /B 0
rem ======================================
rem FUNCTION BACKUP
rem ======================================
:BACKUP
ECHO %SPLIT%
SET /P ASK_BK=BACKUP?(Y/N)
IF /I NOT %ASK_BK%==Y (EXIT /B 0)
ECHO %SPLIT%
ECHO %SPLIT%
ECHO " ###### ## #### ### ## ## ## ###### ";
ECHO " ## ## #### ## ## ## ## ## ## ## ## ";
ECHO " ## ## ## ## ## ## ## ## ## ## ## ";
ECHO " ##### ## ## ## #### ## ## ##### ";
ECHO " ## ## ###### ## ## ## ## ## ## ";
ECHO " ## ## ## ## ## ## ## ## ## ## ## ";
ECHO " ###### ## ## #### ### ## ##### #### ";
ECHO %SPLIT%
ECHO %SPLIT%
ECHO ★SECURE DRIVE
MKDIR %WORK_DIR_PATH%
ECHO ★MAKE BK FILENAME
SET HIZUKE=%DATE: =0%
SET yy=%HIZUKE:~0,4%
SET mm=%HIZUKE:~5,2%
SET dd=%HIZUKE:~8,2%
SET BK_FILENAME=%WORK_FILENAME%_%yy%_%mm%_%dd%.xlsx
ECHO RESULT IS %BK_FILENAME%
ECHO ★BACK UP
COPY /Y %WORK_DIR_PATH%%WORK_FILENAME%.xlsx %WORK_DIR_PATH%%BK_FILENAME%
POWERSHELL SLEEP 0.5
EXIT /B 0
rem ======================================
rem FUNCTION CALL_ARCHIVE
rem ======================================
:CALL_ARCHIVE
ECHO %SPLIT%
ECHO %SPLIT%
ECHO " ##### ###### ####### ## ## ";
ECHO " ## ## ## ## ## # ### ## ";
ECHO " ## ## ## ## ## # #### ## ";
ECHO " ## ## ##### #### ## #### ";
ECHO " ## ## ## ## # ## ### ";
ECHO " ## ## ## ## # ## ## ";
ECHO " ##### #### ####### ## ## ";
ECHO %SPLIT%
ECHO %SPLIT%
ECHO ★DETAIL
DIR %WORK_DIR_PATH% | FIND "%WORK_FILENAME%.xlsx"
POWERSHELL SLEEP 0.5
ECHO ★OPEN WORK FILE
IF EXIST %WORK_DIR_PATH%~$%WORK_FILENAME%.xlsx (
ECHO ALREADY OPENED
) else (
START /MAX %WORK_DIR_PATH%%WORK_FILENAME%.xlsx
)
POWERSHELL SLEEP 3
EXIT /B 0
やってくれること
・挨拶
・日時表示
・インターフェース表示
・Cドライブのディスク診断
・(やるなら)実行中プロセス詳細表示、メモリ使用量100MBを超えるプロセスの詳細表示
・メモリ使用量100MBを超えるプロセス個数を表示し、実行を中断するか質問
・(やるなら)対象Excelファイルのバックアップ取得(work_2021_05_27.xlsxというように作成し、1日以内のは上書き)
・対象Excelファイルを開く、すでに開いている場合は開かずに終了
セットアップ方法
1.いつも使うExcelと、格納フォルダを用意
例) work.xlsxと、C:\Users\user1\work\
2.start.batをコピーして、任意の場所(同じドライブならどこでも)にバッチファイルを置く
Wドライブにwork.xlsxを置いたらWドライブにstart.batを置いてください
3.(オプション)タスクバーにcmdを固定
手順1)Win+Rキー
でcmd
を入力してコマンドプロンプトを起動
手順2)タスクバーのcmdを右クリックしてタスクバーに固定
手順3)start.batのフルパスをコピーしておく 例) C:\Users\user1\work\start.bat
手順4)タスクバーのcmdを右クリックして
「コマンドプロンプト」の部分をさらに右クリック
プロパティ
を選択し
手順3でコピったパスをこのように貼り付け
これでOK。あとはWin+数字キーで、一瞬で呼び出せる。
※この場合だとWin+4
※他にcmdの画面を表示していると、start.bat起動ではなくcmdウィンドウ表示になっちゃうよ
mk2
タスクリストとかいらねぇ!っていう、合理的な真面目バッチはこちら。
@ECHO OFF
rem ======================================
rem SETTING PARAMETER
rem ======================================
SET SPLIT=======================================================================================================================================================================
rem --★作業フォルダ
SET WIP_DIR=C:\Users\%USERNAME%\Documents\work\wip
rem --★アーカイブフォルダ/アーカイブ名/拡張子
SET DRIVE_PATH=C:\Users\%USERNAME%\Documents\work\archive\
SET ARCHIVE_NAME=itumonoyatu
SET EXTENSION=xlsx
rem --★外部ストレージ/作業フォルダ
SET OUTER_STRAGE=D:\
SET OUTER_STRAGE_WIP_DIR=D:\wip
rem ======================================
rem MAIN
rem ======================================
SETLOCAL ENABLEDELAYEDEXPANSION
CALL :START
CALL :BACKUP
CALL :CALL_ARCHIVE
ENDLOCAL
EXIT
rem ======================================
rem FUNCTION START
rem ======================================
:START
ECHO %date% %time%
ECHO %SPLIT%
ECHO %SPLIT%
ECHO " ## ## ####### #### #### ##### ## ## ##### ###### #### ##### ## ";
ECHO " ## ## ## # ## ## ## ## ## ## ## ## ## ## ## ## ## #### ";
ECHO " ## ## ## # ## ## ## ## ## ## ## ## ## ## ## ## ## #### ";
ECHO " ####### #### ## ## ## ## ## # ## ## ## ##### ## ## ## ## ";
ECHO " ## ## ## # ## # ## # ## ## ####### ## ## ## ## ## # ## ## ## ";
ECHO " ## ## ## # ## ## ## ## ## ## ### ### ## ## ## ## ## ## ## ## ";
ECHO " ## ## ####### ####### ####### ##### ## ## ##### #### ## ####### ##### ## ";
ECHO %SPLIT%
ECHO %SPLIT%
EXIT /B 0
rem ======================================
rem FUNCTION BACKUP
rem ======================================
:BACKUP
ECHO %SPLIT%
ECHO %SPLIT%
ECHO " ###### ## #### ### ## ## ## ###### ";
ECHO " ## ## #### ## ## ## ## ## ## ## ## ";
ECHO " ## ## ## ## ## ## ## ## ## ## ## ";
ECHO " ##### ## ## ## #### ## ## ##### ";
ECHO " ## ## ###### ## ## ## ## ## ## ";
ECHO " ## ## ## ## ## ## ## ## ## ## ## ";
ECHO " ###### ## ## #### ### ## ##### #### ";
ECHO %SPLIT%
ECHO %SPLIT%
ECHO ★SECURE DRIVE
MKDIR %DRIVE_PATH%
ECHO ★BK FILENAME
SET HIZUKE=%DATE: =0%
SET yy=%HIZUKE:~0,4%
SET mm=%HIZUKE:~5,2%
SET dd=%HIZUKE:~8,2%
SET BK_FILENAME=%ARCHIVE_NAME%_%yy%_%mm%_%dd%.%EXTENSION%
ECHO RESULT IS %BK_FILENAME%
ECHO ★BACK UP
COPY /Y %DRIVE_PATH%%ARCHIVE_NAME%.%EXTENSION% %DRIVE_PATH%%BK_FILENAME%
ECHO ★CHECK OUTER STRAGE
IF NOT EXIST %OUTER_STRAGE% (
ECHO NO OUTER STRAGE
EXIT /B 0
)
SET /P ASK_OVERWRITE=OVERWRITE OUTER STRAGE?(Y/N)
IF /I NOT %ASK_OVERWRITE%==Y (
EXIT /B 0
)
ECHO ★CP ARCHIVE
COPY /Y %DRIVE_PATH%%ARCHIVE_NAME%.%EXTENSION% %OUTER_STRAGE%
ECHO ★CP WIP
ROBOCOPY %WIP_DIR% %OUTER_STRAGE_WIP_DIR% /S /E
EXIT /B 0
rem ======================================
rem FUNCTION CALL_ARCHIVE
rem ======================================
:CALL_ARCHIVE
ECHO %SPLIT%
ECHO %SPLIT%
ECHO " #### ## #### #### ## ###### #### ## ## #### ## ## ####### ";
ECHO " ## ## #### ## ## #### ## ## ## ## ## ## ## ## ## ## # ";
ECHO " ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## # ";
ECHO " ## ## ## ## ## ## ## ##### ## ####### ## ## ## #### ";
ECHO " ## ###### ## # ## # ###### ## ## ## ## ## ## ### ## # ";
ECHO " ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ## ### ## # ";
ECHO " #### ## ## ####### ####### ## ## #### ## #### ## ## #### # ####### ";
ECHO %SPLIT%
ECHO %SPLIT%
ECHO ★DETAIL
DIR %DRIVE_PATH% | FIND "%ARCHIVE_NAME%.%EXTENSION%"
ECHO ★CALL ARCHIVE
IF EXIST %DRIVE_PATH%~$%ARCHIVE_NAME%.%EXTENSION% (
ECHO ALREADY OPENED
) ELSE (
START /MAX %DRIVE_PATH%%ARCHIVE_NAME%.%EXTENSION%
)
POWERSHELL SLEEP 3
EXIT /B 0
##mk3
作業フォルダごと、日付つきでBK
外部ストレージがあればそこにも「bk」フォルダとしてBK
@ECHO OFF
rem ======================================
rem SETTING PARAMETER
rem ======================================
rem --★作業フォルダ(末尾にバクスラを付けない)
SET WORK_DIR=【(例)C:\Users\%USERNAME%\Documents\work】
rem --★バックアップ用フォルダ(末尾にバクスラを付けない)
SET BK_DIR=【(例)C:\Users\%USERNAME%\Documents\bk】
rem --★外部ストレージ(末尾にバクスラを付けない)
SET OUTER_STRAGE=【(例)W:\Users\%USERNAME%】
rem --★外部ストレージのバックアップ用フォルダ(末尾にバクスラを付けない)
SET OUTER_STRAGE_BK=【(例)W:\Users\%USERNAME%\bk】
rem ======================================
rem MAIN
rem ======================================
SETLOCAL ENABLEDELAYEDEXPANSION
CALL :BACKUP
CALL :OPEN_DIR
ENDLOCAL
POWERSHELL SLEEP 3
EXIT
rem ======================================
rem BACKUP
rem ======================================
:BACKUP
SET HIZUKE=%DATE: =0%
SET yy=%HIZUKE:~0,4%
SET mm=%HIZUKE:~5,2%
SET dd=%HIZUKE:~8,2%
MKDIR %BK_DIR%
MKDIR %BK_DIR%\%yy%_%mm%_%dd%
ROBOCOPY %WORK_DIR% %BK_DIR%\%yy%_%mm%_%dd% /S /E
IF EXIST %OUTER_STRAGE% (
MKDIR %OUTER_STRAGE_BK%
ROBOCOPY %WORK_DIR% %OUTER_STRAGE_BK% /S /E
)
EXIT /B 0
rem ======================================
rem OPEN_DIR
rem ======================================
:OPEN_DIR
EXPLORER "%WORK_DIR%"
EXIT /B 0