LoginSignup

This article is a Private article. Only a writer and users who know the URL can access it.
Please change open range to public in publish setting if you want to share this article with other users.

More than 1 year has passed since last update.

作業効率化

Last updated at Posted at 2021-05-26

いつも使うファイルを開くついでにいろいろできるバッチ

コピペで使えます。
以下の部分だけ自分のものに差し替えてください。

ユニーク.bat
SET WORK_DIR_PATH=★作業フォルダフルパス(後ろにバクスラあり(例:C:\Users\work\))★
SET WORK_FILENAME=★いつも使う拡張子抜きのExcelファイル名(例:work)★
start.bat
@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を右クリックして
image.png
「コマンドプロンプト」の部分をさらに右クリック
image.png
プロパティを選択し
手順3でコピったパスをこのように貼り付け
image.png

これでOK。あとはWin+数字キーで、一瞬で呼び出せる。
image.png
※この場合だとWin+4
※他にcmdの画面を表示していると、start.bat起動ではなくcmdウィンドウ表示になっちゃうよ

mk2

タスクリストとかいらねぇ!っていう、合理的な真面目バッチはこちら。

smart.bat
@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

mk3.bat
@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
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up