初めに
この頃は会社に外部データを入れるのが厳しい状況な時代になってきました
ちょっと前だとクラウドサーバー等に自分のお気に入りのツールや
自作のバッチを入れていたのですが もちろん今は禁止なご時世…
とりあえず今まで作ってきたDOSバッチを置いておきます。
※注意
まだ作成途中や、緊急で作ったので、ソースは汚いです…
あと、ファイルコピーや移動などは当時のコメントなしの状態なので
・バッチファイル内にパスを入れるタイプ
・ファイルorフォルダドロップ動作するタイプ
などがありますが、今は時間がないので、今後追記はしていきたいなと・・・
まあ「自己責任」ってことでバグは許してください(すんません)
【ファイル作成系】
フォルダ作成-月
フォルダ作成-月.bat
@echo off
rem 年月日取得
rem 年
set sYear=%DATE:~0,4%
rem 月(ゼロ埋め対応)
set sMonth=0%DATE:~5,2%
set sMonth=%sMonth:~-2,2%
rem 日(ゼロ埋め対応)
set sDate=%DATE:~8,2%
rem 時間の取得(0時~9時までのゼロ埋め対応)
set sNowTIME=%TIME: =0%
rem 時(ゼロ埋め対応)
set sHour=%sNowTIME:~0,2%
rem 分(ゼロ埋め対応)
set sMinute=%sNowTIME:~3,2%
rem =====================================================
rem 年月日
set sYYYYMMDD=%sYear%-%sMonth%-%sDate%
rem 年月
set sYYYYMM=%sYear%年%sMonth%月
rem 時間
set sHHMISS=%sHour%%sMinute%
rem 年月日時間
set sYYYYMMDD_HHMISS=%sYYYYMMDD%_%sHHMISS%
rem =======================================================
rem フォルダ作成
mkdir %sYYYYMM%
rem =====================================================
フォルダ作成-年月日-連番
フォルダ作成-年月日-連番.bat
@echo off
rem カレント設定[ローカルの場合]
rem cd /d %~dp0
rem カレント設定[ネットワークの場合]
pushd %~dp0
rem --------------------
rem 年月日取得
rem --------------------
rem 年
set sYear=%DATE:~0,4%
rem 月(ゼロ埋め対応)
set sMonth=0%DATE:~5,2%
set sMonth=%sMonth:~-2,2%
rem 日(ゼロ埋め対応)
set sDate=%DATE:~8,2%
rem 時間の取得(0時~9時までのゼロ埋め対応)
set sNowTIME=%TIME: =0%
rem 時(ゼロ埋め対応)
set sHour=%sNowTIME:~0,2%
rem 分(ゼロ埋め対応)
set sMinute=%sNowTIME:~3,2%
rem =====================================================
rem 年月日
set sYYYYMMDD=%sYear%-%sMonth%-%sDate%
rem 年月
rem set sYYYYMM=%sYear%年%sMonth%月
rem 時間
rem set sHHMISS=%sHour%%sMinute%
rem 年月日時間
rem set sYYYYMMDD_HHMISS=%sYYYYMMDD%_%sHHMISS%
rem 基本フォルダ名設定
set sDirName=%sYYYYMMDD%
rem =======================================================
rem フォルダ作成
rem =====================================================
set count=00
rem フォルダ名
set nDirLabl=%sDirName%_%count%
rem %%aに0から9まで代入して繰り返す
for /l %%a in (1, 1, 9) do (
if not exist %nDirLabl%%%a (
mkdir %nDirLabl%%%a
goto :END
)
)
:END
日付フォルダ作成YYYYMMDD
日付フォルダ作成YYYYMMDD.bat
@echo off
rem カレント設定[ローカルの場合]
rem cd /d %~dp0
rem カレント設定[ネットワークの場合]
pushd %~dp0
rem --------------------
rem 年月日取得
rem --------------------
rem 年
set sYear=%DATE:~0,4%
rem 月(ゼロ埋め対応)
set sMonth=0%DATE:~5,2%
set sMonth=%sMonth:~-2,2%
rem 日(ゼロ埋め対応)
set sDate=%DATE:~8,2%
rem 時間の取得(0時~9時までのゼロ埋め対応)
set sNowTIME=%TIME: =0%
rem 時(ゼロ埋め対応)
set sHour=%sNowTIME:~0,2%
rem 分(ゼロ埋め対応)
set sMinute=%sNowTIME:~3,2%
rem =====================================================
rem 年月日
set sYYYY-MMDD=%sYear%-%sMonth%-%sDate%
set sYYYYMMDD=%sYear%%sMonth%%sDate%
rem 年月
set sYYYYMM=%sYear%年%sMonth%月
rem 時間
set sHHMISS=%sHour%%sMinute%
rem 年月日時間
set sYYYYMMDD_HHMISS=%sYYYYMMDD%_%sHHMISS%
rem 基本フォルダ名設定
set sDirName=%sYYYYMMDD%
rem =======================================================
rem フォルダ作成
rem =====================================================
mkdir .\%sDirName%
フォルダ作成-年月日時分
batフォルダ作成-年月日時分.bat
@echo off
rem カレント設定[ローカルの場合]
rem cd /d %~dp0
rem カレント設定[ネットワークの場合]
pushd %~dp0
rem --------------------
rem 年月日取得
rem --------------------
rem 年
set sYear=%DATE:~0,4%
rem 月(ゼロ埋め対応)
set sMonth=0%DATE:~5,2%
set sMonth=%sMonth:~-2,2%
rem 日(ゼロ埋め対応)
set sDate=%DATE:~8,2%
rem 時間の取得(0時~9時までのゼロ埋め対応)
set sNowTIME=%TIME: =0%
rem 時(ゼロ埋め対応)
set sHour=%sNowTIME:~0,2%
rem 分(ゼロ埋め対応)
set sMinute=%sNowTIME:~3,2%
rem =====================================================
rem 年月日
set sYYYYMMDD=%sYear%-%sMonth%-%sDate%
rem 年月
set sYYYYMM=%sYear%年%sMonth%月
rem 時間
set sHHMISS=%sHour%%sMinute%
rem 年月日時間
set sYYYYMMDD_HHMISS=%sYYYYMMDD%_%sHHMISS%
rem 基本フォルダ名設定
set sDirName=%sYYYYMMDD_HHMISS%
rem =======================================================
rem フォルダ作成
rem =====================================================
if not exist %sDirName% (
mkdir %sDirName%
goto :END
)
:END
フォルダ作成-年月日
フォルダ作成-年月日.bat
@echo off
rem カレント設定[ローカルの場合]
rem cd /d %~dp0
rem カレント設定[ネットワークの場合]
pushd %~dp0
rem --------------------
rem 年月日取得
rem --------------------
rem 年
set sYear=%DATE:~0,4%
rem 月(ゼロ埋め対応)
set sMonth=0%DATE:~5,2%
set sMonth=%sMonth:~-2,2%
rem 日(ゼロ埋め対応)
set sDate=%DATE:~8,2%
rem 時間の取得(0時~9時までのゼロ埋め対応)
set sNowTIME=%TIME: =0%
rem 時(ゼロ埋め対応)
set sHour=%sNowTIME:~0,2%
rem 分(ゼロ埋め対応)
set sMinute=%sNowTIME:~3,2%
rem =====================================================
rem 年月日
set sYYYYMMDD=%sYear%-%sMonth%-%sDate%
rem 年月
rem set sYYYYMM=%sYear%年%sMonth%月
rem 時間
rem set sHHMISS=%sHour%%sMinute%
rem 年月日時間
rem set sYYYYMMDD_HHMISS=%sYYYYMMDD%_%sHHMISS%
rem 基本フォルダ名設定
set sDirName=%sYYYYMMDD%
rem =======================================================
rem フォルダ作成
rem =====================================================
mkdir %sDirName%
:END
フォルダ作成-プロジェクト用
フォルダ作成-プロジェクト用.bat
@echo off
rem カレント設定[ローカルの場合]
rem cd /d %~dp0
rem カレント設定[ネットワークの場合]
pushd %~dp0
rem =====================================================
rem
rem プロジェクト用フォルダ作成
rem
rem =====================================================
mkdir .\01_要求事項
mkdir .\02_基本設計
mkdir .\03_PG仕様書
mkdir .\04_試験
mkdir .\04_試験\01_単体_エビデンスファイル
mkdir .\04_試験\02_総合_エビデンスファイル
mkdir .\04_試験\03_結合_エビデンスファイル
mkdir .\05_成果品
mkdir .\06_リリースフォルダ
mkdir .\99_参考資料
rem =====================================================
TimeOut 10
【バックアップ関連】
バックアップ-powershellのZIP圧縮
バックアップ-powershellのZIP圧縮.bat
@echo off
rem ===============================================================
rem 日付設定
rem ===============================================================
rem 年月日取得
rem 年
set sYear=%DATE:~0,4%
rem 月
set sMonth=%DATE:~5,2%
rem 日
set sDate=%DATE:~8,2%
rem 時間の取得(0時~9時までのゼロ埋め対応)
set sNowTIME=%TIME: =0%
rem 時(ゼロ埋め対応)
set sHour=%sNowTIME:~0,2%
rem 分(ゼロ埋め対応)
set sMinute=%sNowTIME:~3,2%
rem 日付フォルダ名
set sYYYY-MMM-DD-HHMM=%sYear%-%sMonth%-%sDate%-%sHour%%sMinute%_
set sYYYY-MM-DD=%sYear%-%sMonth%-%sDate%_
rem ----------------------------------------
rem
rem zip圧縮 powershellで実行
rem
rem Compress-Archive [-Path] 圧縮したいファイルパス [-DestinationPath] 圧縮後のzipファイル [パラメータ]
rem
rem 複数フォルダの場合
rem Compress-Archive [-Path] 圧縮したいファイルパス,圧縮したいファイルパス [-DestinationPath] 圧縮後のzipファイル [パラメータ]
rem
rem 強制上書き -Force
rem
rem ----------------------------------------
rem バックアップ先(フォルダ指定)
set bakupPath=.\XXX_bakupPath_XXX
rem 保存先フォルダ
set zipPath=D:\_My_DIR\000-bakup\
rem 保存ファイル名
set zipName=%sYYYY-MMM-DD-HHMM%BakupName.zip
rem 保存先フルパス
set fullZipPath=%zipPath%%zipName%
rem powershellで zip圧縮 実行
powershell compress-archive -Path %bakupPath%\* -DestinationPath %fullZipPath%
start "" %zipPath%
Timeout 5
バックアップ-ファイルコピー(日付フォルダ内)
バックアップ-ファイルコピー(日付フォルダ内).bat
@echo off
rem ===============================================================
rem バックアップ処理
rem ===============================================================
rem echo 01)フォルダ設定
rem ===============================================================
rem フォルダ設定
rem ===============================================================
rem バックアップフォルダ
set sBakUpBaseDIR=\\BakUpBaseDIR\フォルダ\2001023\04_プログラム\
rem コピー元フォルダ
set sMoveFile=D:\SVN_GIT\基盤\saucefolder
rem echo 02)日付設定
rem ===============================================================
rem 日付設定
rem ===============================================================
rem 年月日取得
rem 年
set sYear=%DATE:~0,4%
rem 月
set sMonth=%DATE:~5,2%
rem 日(ゼロ埋め対応)
set sDate=%DATE:~8,2%
rem 時間の取得(0時~9時までのゼロ埋め対応)
set sNowTIME=%TIME: =0%
rem 時(ゼロ埋め対応)
set sHour=%sNowTIME:~0,2%
rem 分(ゼロ埋め対応)
set sMinute=%sNowTIME:~3,2%
rem 日付フォルダ名
set sYYYYMMMDDHHMM_DIR=%sYear%%sMonth%%sDate%%sHour%%sMinute%
set sYYYYMMMDD_DIR=%sYear%%sMonth%%sDate%
set sBakUpDIR=%sBakUpBaseDIR%%sYYYYMMMDD_DIR%
rem echo 03)ファイル移動
rem ===============================================================
rem ファイル移動
rem ===============================================================
rem バックアップ用フォルダ作成(存在するときは無視)
IF NOT EXIST %sBakUpDIR% (
mkdir %sBakUpDIR%
)
rem コピー
xcopy /E /H /K %sMoveFile% %sBakUpDIR%
echo コピーしました
Timeout 5
バックアップ-フォルダ(日付+連番)
バックアップ-フォルダ(日付+連番).bat
@echo off
rem echo 01)フォルダ設定
rem ===============================================================
rem フォルダ設定
rem ===============================================================
rem バックアップフォルダ元
set sBakUpDIR=D:\_My_dir\000-バックアップ\バックアップフォルダ\
rem バックアップ作成フォルダ名
set sMakeDir=作られるフォルダ名
rem コピー元フォルダ
set sMoveFile=\\192.168.0.1\システム\案件\10_開発資料\調査資料\
rem echo 02)日付設定
rem ===============================================================
rem 日付設定
rem ===============================================================
rem 年月日取得
rem 年
set sYear=%DATE:~0,4%
rem 月
set sMonth=%DATE:~5,2%
rem 日(ゼロ埋め対応)
set sDate=%DATE:~8,2%
rem 時間の取得(0時~9時までのゼロ埋め対応)
set sNowTIME=%TIME: =0%
rem 時(ゼロ埋め対応)
set sHour=%sNowTIME:~0,2%
rem 分(ゼロ埋め対応)
set sMinute=%sNowTIME:~3,2%
rem 日付フォルダ名(日時あり)
set sYYYYMMMDDHHMM_DIR=%sYear%-%sMonth%-%sDate%_%sHour%%sMinute%
rem 日付フォルダ名(日付のみ)
set sYYYY-MM-DD-DIR=%sYear%-%sMonth%-%sDate%
rem echo 03)ファイル移動
rem ===============================================================
rem ファイル移動
rem ===============================================================
rem 連番
set count=00
rem バックアップ先フォルダフルパス名(連番・名称除く)
set sBakUpFullDir=%sBakUpDIR%%sYear%-%sMonth%-%sDate%-%count%
rem %%aに0から9まで代入して繰り返す
for /l %%a in (1, 1, 9) do (
if not exist %sBakUpFullDir%%%a-%sMakeDir% (
rem */E ファイルが存在しなくてもディレクトリごとコピーする
rem */H 隠しファイルやシステムファイルも全てコピーする
rem */R 読み取り専用属性のファイルも上書きコピーできるようにする
rem */I コピー先のディレクトリが存在しない場合は新規にディレクトリを作成する
rem */K 通常は解除される読み取り専用属性を維持したままコピーする
rem /D コピー先に同名のファイルが存在する場合に更新日が新しいファイルのみコピーする
rem /S ファイルが存在する場合のみディレクトリごとコピーする
rem /O ファイルの所有権やアクセス権限もそのままコピーする
xcopy %sMoveFile% %sBakUpFullDir%%%a-%sMakeDir% /E /R /I /K /H
goto :END
)
)
:END
echo コピーしました
rem フォルダを開く
start "*" %sBakUpDIR%
timeout 3
バックアップ-フォルダ単位(日付付き)
バックアップ-フォルダ単位(日付付き).bat
@echo off
rem echo 01)フォルダ設定
rem ===============================================================
rem フォルダ設定
rem ===============================================================
rem バックアップフォルダ名
set sBakUpNAME=bak
rem バックアップフォルダ元
set sBakUpDIR=C:\_Git_Hist\
rem コピー元フォルダ
set sMoveFile=C:\_Git\
rem echo 02)日付設定
rem ===============================================================
rem 日付設定
rem ===============================================================
rem 年月日取得
rem 年
set sYear=%DATE:~0,4%
rem 月
set sMonth=%DATE:~5,2%
rem 日
set sDate=%DATE:~8,2%
rem 時間の取得(0時~9時までのゼロ埋め対応)
set sNowTIME=%TIME: =0%
rem 時(ゼロ埋め対応)
set sHour=%sNowTIME:~0,2%
rem 分(ゼロ埋め対応)
set sMinute=%sNowTIME:~3,2%
rem 日付フォルダ名
set sYYYYMMMDDHHMM_DIR=%sYear%-%sMonth%-%sDate%_%sHour%%sMinute%
set sYYYY-MM-DD-DIR=%sYear%-%sMonth%-%sDate%
rem echo 03)ファイル移動
rem ===============================================================
rem ファイル移動
rem ===============================================================
rem バックアップ用フォルダ作成(存在するときは無視)
rem IF NOT EXIST %sBakUpNAME% (
rem mkdir %sBakUpNAME%
rem )
rem フォルダ作成
rem mkdir %sBakUpDIR%%sYYYYMMMDDHHMM_DIR%
rem */E ファイルが存在しなくてもディレクトリごとコピーする
rem */H 隠しファイルやシステムファイルも全てコピーする
rem */R 読み取り専用属性のファイルも上書きコピーできるようにする
rem */I コピー先のディレクトリが存在しない場合は新規にディレクトリを作成する
rem */K 通常は解除される読み取り専用属性を維持したままコピーする
rem /D コピー先に同名のファイルが存在する場合に更新日が新しいファイルのみコピーする
rem /S ファイルが存在する場合のみディレクトリごとコピーする
rem /O ファイルの所有権やアクセス権限もそのままコピーする
rem 移動
xcopy %sMoveFile%\soc-com-588-pasto-system %sBakUpDIR%%sYYYY-MM-DD-DIR%-000-soc-com-588-pasto-system\ /E /R /I /K /H
echo コピーしました
timeout 3
rem
ファイルコピー(上書き)
ファイルコピー(上書き).bat
@echo off
rem echo 01)フォルダ設定
rem ===============================================================
rem フォルダ設定
rem ===============================================================
rem コピー元フォルダ
set sMoveFromDIR=C:\my_Dir\00-XX\001-伝票\
rem コピー先フォルダ
set sMoveToDIR=.\xxxxxx\
rem コピーファイル名
set sCopyFileName=*.*
rem コピー
copy %sMoveFromDIR%%sCopyFileName% %sMoveToDIR%%sCopyFileName%
echo コピーしました
Timeout 5
ファイルコピー(日付付き)
ファイルコピー(日付付き).bat
@echo off
rem echo 01)フォルダ設定
rem ===============================================================
rem フォルダ設定
rem ===============================================================
rem バックアップフォルダ名
set sBakUpNAME=bak
rem バックアップフォルダ元
set sBakUpDIR=.\%sBakUpNAME%\
rem コピー元フォルダ
rem set sMoveFile=//192.168.0.1/myDir/01_テーブル設計/*.xlsm
set sMoveFile=C:\my_Dir\000-伝票(完)\
rem コピーファイル名
set sCopyFileName=システム設計.xlsm
rem echo 02)日付設定
rem ===============================================================
rem 日付設定
rem ===============================================================
rem 年月日取得
rem 年
set sYear=%DATE:~0,4%
rem 月
set sMonth=%DATE:~5,2%
rem 日(ゼロ埋め対応)
set sDate=%DATE:~8,2%
rem 時間の取得(0時~9時までのゼロ埋め対応)
set sNowTIME=%TIME: =0%
rem 時(ゼロ埋め対応)
set sHour=%sNowTIME:~0,2%
rem 分(ゼロ埋め対応)
set sMinute=%sNowTIME:~3,2%
rem 日付フォルダ名
set sYYYYMMMDDHHMM_DIR=%sYear%-%sMonth%-%sDate%_%sHour%%sMinute%
rem echo 03)ファイル移動
rem ===============================================================
rem ファイル移動
rem ===============================================================
rem バックアップ用フォルダ作成(存在するときは無視)
rem IF NOT EXIST %sBakUpNAME% (
rem mkdir %sBakUpNAME%
rem )
rem フォルダ作成
rem mkdir %sBakUpDIR%%sYYYYMMMDDHHMM_DIR%
rem 移動
copy %sMoveFile%%sCopyFileName% %sYear%%sMonth%%sDate%%sHour%_%sCopyFileName%
echo コピーしました
Timeout 5
ファイル移動
ファイル移動.bat
@echo off
rem ===============================================================
rem ファイル移動
rem ===============================================================
SET FROM_DIR=E:\000_データ作成\既存ファイル\
SET TO_DIR=C:\_Dir\01-データ作成\既存出力ファイル\
rem 移動 【xcopy】
rem /Y 同名のファイルが存在する場合、上書きの確認を行わない
rem /-Y同名のファイルが存在する場合、上書きの確認を行う
rem /I コピー先のディレクトリが存在しない場合は新規にディレクトリを作成する
rem /E ファイルが存在しなくてもディレクトリごとコピーする
xcopy /E /Y /I %FROM_DIR% %TO_DIR%
rem ファイル削除【del】
rem /P ファイルの削除前に確認メッセージを表示する
rem /S 指定したファイルを全てのサブディレクトリから削除し、削除したファイル名を表示する
rem /A:R 読み取り専用属性のファイルを削除する
rem /A:S システムファイルを削除する
rem /A:H 隠しファイルを削除する
rem /A:A アーカイブを削除する
rem /Q 削除前に確認メッセージを表示しない
del /S /Q %FROM_DIR%
Timeout 5
【情報取得関連】
ファイル情報
ファイル情報.bat
@echo off
rem ===============================================================
rem 日付設定
rem ===============================================================
rem 年月日取得
rem 年
set sYear=%DATE:~0,4%
rem 月
set sMonth=%DATE:~5,2%
rem 日(ゼロ埋め対応)
set sDate=%DATE:~8,2%
rem 時間の取得(0時~9時までのゼロ埋め対応)
set sNowTIME=%TIME: =0%
rem 時(ゼロ埋め対応)
set sHour=%sNowTIME:~0,2%
rem 分(ゼロ埋め対応)
set sMinute=%sNowTIME:~3,2%
echo 第1引数は「%1」です。
echo そのまま表示
echo %1
echo:
echo ダブルクォーテーション「"」を除いて表示
echo %~1
echo:
echo ドライブ名を表示せず、パス名だけを表示
echo %~p1
echo:
echo ファイル名のみ表示
echo %~n1
echo:
echo ファイルの更新日時を表示
echo %~t1
echo:
pause
フォルダ構造ツリー作成
フォルダ構造ツリー作成.bat
tree > tree.txt
File一覧作成
File一覧作成.bat
@echo off
cd /d %~dp0
rem =======================================================
rem 年月日取得
rem 年
set sYear=%DATE:~0,4%
rem 月(ゼロ埋め対応)
set sMonth=0%DATE:~5,2%
set sMonth=%sMonth:~-2,2%
rem 日(ゼロ埋め対応)
set sDate=%DATE:~8,2%
rem 時間の取得(0時~9時までのゼロ埋め対応)
set sNowTIME=%TIME: =0%
rem 時(ゼロ埋め対応)
set sHour=%sNowTIME:~0,2%
rem 分(ゼロ埋め対応)
set sMinute=%sNowTIME:~3,2%
rem 年月日
set sYYYYMMDD=%sYear%%sMonth%%sDate%
rem 時間
set sHHMISS=%sHour%%sMinute%
rem 年月日時間
set sYYYYMMDD_HHMISS=%sYYYYMMDD%_%sHHMISS%
rem =======================================================
rem 自分のディレクトリ
SET MYDIR=%CD%\
rem タイムアウト時間
SET OUT_TIME=5
rem 作成フラグ
SET MAKE_LIST_FLG=0
rem 作成中メッセージ
SET MAKE_NSG=作成中…
SET END_NSG=作成完了
SET INPUT_DIR=""
SET FILE_NAME=""
echo %sYYYYMMDD_HHMISS%
echo ■■■■■■■■■■■■■■■■■■■■■■
echo ■ フォルダ内一覧リスト作成 ■
echo.
echo 【注意】
echo.
echo ・指定するパスはフルパスで記入してください
echo 例)D:\hoge/hoge
echo.
echo ・検索結果はこのバッチファイルと同じところ
echo に作成されます。
echo.
echo ・ファイル名で半角記号は現在未対応です
echo 例) ^(^)^<^>^{^}…
echo.
echo ■ ■
echo ■■■■■■■■■■■■■■■■■■■■■■
echo 対象フォルダ(フルパス)を指定してください
echo 例)D:\hoge/hoge
SET /P INPUT_DIR=">"
rem ディレクトリ異動
cd /D %INPUT_DIR%
echo 出力ファイル名を指定してください
echo 例)hogeList
SET /P FILE_NAME=">"
echo 01
rem フォルダ区切り「\」がある場合はアンダーバーにする
SET FILE_NAME=%FILE_NAME:\=_%
echo 02=%FILE_NAME%
rem ファイル名の指定がない場合は固定で
IF %FILE_NAME% EQU "" (
echo 03
SET FILE_NAME=ListFile.txt
) ELSE (
echo 04
SET FILE_NAME=%FILE_NAME%.txt
)
echo 05
echo ****************************************
echo 対象:%INPUT_DIR%
echo.
echo 出力:%MYDIR%
echo.
echo ファイル名:%FILE_NAME%
echo.
echo 作成方法
echo ----------------------------------------
echo 1:ファイル一覧(フルパス表示)
echo 2:ファイル一覧(ファイル込みツリー表示)
echo 3:ファイル一覧(フォルダツリー表示)
echo ----------------------------------------
SET /P INPUT_STR=">"
rem ファイル作成
IF /I %INPUT_STR%==1 (
echo %MAKE_NSG%
SET MAKE_LIST_FLG=1
dir /A:-D /b /s /O:GN > %MYDIR%\%sYYYYMMDD_HHMISS%_フルパス表示_%FILE_NAME%
)
IF /I %INPUT_STR%==2 (
echo %MAKE_NSG%
SET MAKE_LIST_FLG=1
tree /f > %MYDIR%\%sYYYYMMDD_HHMISS%_ツリー表示_ファイル有_%FILE_NAME%
)
IF /I %INPUT_STR%==3 (
echo %MAKE_NSG%
SET MAKE_LIST_FLG=1
tree / > %MYDIR%\%sYYYYMMDD_HHMISS%_ツリー表示_フォルダのみ_%FILE_NAME%
)
rem 作成結果表示
IF %MAKE_LIST_FLG%==1 (
echo %MYDIR% 配下を作成しました
echo %END_NSG%
TIMEOUT %OUT_TIME%
) else (
echo 作成されませんでした
TIMEOUT %OUT_TIME%
)
start "*" %MYDIR%\
exit
PC情報取得_ファイル出力
PC情報取得_ファイル出力.bat
@echo off
set WriteTxt=.\\myPcInfo.txt
echo %WriteTxt% にて出力しております。
echo ------システム情報--------------------------------- > %WriteTxt%
echo. >> %WriteTxt%
systeminfo >> %WriteTxt%
echo. >> %WriteTxt%
echo ------製品番号(UTF-8)------------------------------------- >> %WriteTxt%
echo. >> %WriteTxt%
wmic csproduct get name >> %WriteTxt%
echo. >> %WriteTxt%
echo ------シリアル番号(UTF-8)---------------------------------- >> %WriteTxt%
echo. >> %WriteTxt%
wmic bios get serialnumber >> %WriteTxt%
echo. >> %WriteTxt%
echo ------コンピュータ名、MACアドレス、IPアドレス-------- >> %WriteTxt%
echo. >> %WriteTxt%
ipconfig /all >> %WriteTxt%
PC情報取得_表示
PC情報取得_表示.bat
@echo off
echo ------システム情報---------------------------------
echo.
systeminfo
echo.
echo ------製品番号(UTF-8)-------------------------------------
echo.
wmic csproduct get name
echo.
echo ------シリアル番号(UTF-8)----------------------------------
echo.
wmic bios get serialnumber
echo.
echo ------コンピュータ名、MACアドレス、IPアドレス---------------
echo.
ipconfig /all
echo.
echo ------マシン情報表示終了------------------------------------
echo.
pause
【背景・フォント色】
【背景・フォント色】.bat
@echo OFF
rem COLOR [属性]
rem 属性 コンソール出力の色属性を指定します。
rem
rem 色属性は、2 桁の 16 進数で指定します。
rem 1 桁目は背景に、2 桁目は前景に対応します。
rem 各桁には、次のいずれかの値を指定することができます:
rem
rem 0 = 黒 8 = 灰色
rem 1 = 青 9 = 明るい青
rem 2 = 緑 A = 明るい緑
rem 3 = 水色 B = 明るい水色
rem 4 = 赤 C = 明るい赤
rem 5 = 紫 D = 明るい紫
rem 6 = 黄色 E = 明るい黄色
rem 7 = 白 F = 輝く白
SET INPUT_STR=N
SET COUNT=0
:NEXT
rem 画面クリア
cls
IF %COUNT%==0 SET COLOR_CODE=0F
IF %COUNT%==1 SET COLOR_CODE=12
IF %COUNT%==2 SET COLOR_CODE=16
IF %COUNT%==3 SET COLOR_CODE=17
IF %COUNT%==4 SET COLOR_CODE=1A
IF %COUNT%==5 SET COLOR_CODE=1B
IF %COUNT%==6 SET COLOR_CODE=1C
IF %COUNT%==7 SET COLOR_CODE=1E
IF %COUNT%==8 SET COLOR_CODE=1F
IF %COUNT%==9 SET COLOR_CODE=2F
IF %COUNT%==10 SET COLOR_CODE=24
IF %COUNT%==11 SET COLOR_CODE=9A
IF %COUNT%==12 SET COLOR_CODE=9B
IF %COUNT%==13 SET COLOR_CODE=9E
IF %COUNT%==14 SET COLOR_CODE=9F
IF %COUNT%==15 SET COLOR_CODE=A0
IF %COUNT%==16 SET COLOR_CODE=A1
IF %COUNT%==17 SET COLOR_CODE=5F
IF %COUNT%==18 SET COLOR_CODE=5A
IF %COUNT%==19 SET COLOR_CODE=70
IF %COUNT%==20 SET COLOR_CODE=79
IF %COUNT%==20 (
SET COUNT=0
GOTO :NEXT
)
SET SAMPLE_STR=サンプルNO[%COUNT%]:COLOR_CODE[%COLOR_CODE%]
:SET_COLOR
COLOR %COLOR_CODE%
cls
echo ERRORLEVEL:%ERRORLEVEL%
REM 失敗した場合の処理
IF ERRORLEVEL 1 (
echo %ERRORLEVEL%
SET COLOR_CODE=0F
)
echo.
echo --------------カラーコード--------------
echo COLOR[背景色][文字色]
echo.
echo 現在のCOLOR[%COLOR_CODE%]
IF NOT "%SAMPLE_STR%"=="." (
echo %SAMPLE_STR%
)
echo.
echo 0 = 黒 8 = 灰色
echo 1 = 青 9 = 明るい青
echo 2 = 緑 A = 明るい緑
echo 3 = 水色 B = 明るい水色
echo 4 = 赤 C = 明るい赤
echo 5 = 紫 D = 明るい紫
echo 6 = 黄色 E = 明るい黄色
echo 7 = 白 F = 輝く白
echo.
echo コマンド:[背景色][文字色] ※空白は前の色を引き継
echo.
echo (Q:終了) (N:サンプル)
echo.
echo サンプル順
echo [0F][12][16][17][1A][1B][1C][1E][1F][2F][24]
echo [9A][9B][9E][9F][A0][A1][5F][5A][70][79]
echo -----------------------------------------
SET /P INPUT_STR=">"
IF /I %INPUT_STR%==Q GOTO :END
rem Nの場合はサンプルの色
IF /I %INPUT_STR%==N (
SET/a COUNT+=1
goto :NEXT
)
SET COLOR_CODE=%INPUT_STR%
SET SAMPLE_STR=.
goto :SET_COLOR
:END
ランチャ_簡易版
ランチャ_簡易版.bat
@echo OFF
rem カレント設定
cd /d %~dp0
REM *************************************************************
REM 初期設定
REM *************************************************************
rem エディタのパス設定
SET MY_EDITER="C:\Program Files (x86)\sakura\"
rem Windows PowerShellのパス(コマンド込み)
SET PowerShell="%APPDATA%\Microsoft\Windows\Start Menu\Programs\Windows PowerShell\Windows PowerShell.lnk" -Command
REM 未入力の場合に次の画面に行くように
SET INPUT_STR=N
REM 現在の画面
SET NOW_DISP=01
rem メニュー画面表示数
SET DISP_CNT=2
REM *************************************************************
REM *************************************************************
REM 画面1(:menudisp01)
REM *************************************************************
REM *************************************************************
:menudisp01
REM 画面初期設定
SET NOW_DISP=1
SET INPUT_STR=N
CLS
rem color 0A
color 9E
REM ********************[画面]*******************************
echo ========================【メイン】画面1========================
echo ---【XXXXXXXXXXXXXXX】---------------------------------------------------------
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 :menudisp02
) ELSE (
IF /I %INPUT_STR%==N GOTO :menudisp01
)
rem 編集コマンドの場合
IF /I %INPUT_STR%==EDIT GOTO :APP_RUN
GOTO :APP_RUN
REM *************************************************************
REM *************************************************************
REM 画面2(:menudisp02)
REM *************************************************************
REM *************************************************************
:menudisp02
REM 画面初期設定
SET NOW_DISP=2
SET INPUT_STR=N
CLS
rem color 0A
color 2F
REM ********************[画面]*******************************
echo ========================画面2========================
echo ---【XXXXXXXXXXXXXXX】---------------------------------------------------------
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 :menudisp01
) ELSE (
IF /I %INPUT_STR%==N GOTO :menudisp01
)
IF /I %INPUT_STR%==R GOTO :menudisp01
GOTO :APP_RUN
REM *************************************************************
REM 実行部分
REM *************************************************************
:APP_RUN
REM =======================
REM 起動アプリ設定サブへ
REM =======================
GOTO :RUN_PROG
:APP_RUN_END
rem 入力パラメータをリセットする
SET INPUT_STR=N
REM その画面にジャンプ
IF %NOW_DISP%==1 GOTO :menudisp01
IF %NOW_DISP%==2 GOTO :menudisp02
GOTO :menudisp01
REM *************************************************************
REM アプリケーション設定
REM *************************************************************
:RUN_PROG
REM 実行確認フラグOFFにする
set RUN_FLG=0
REM =======================================================================_
REM 設定
REM =======================================================================_
REM =======================================================================_
REM ファイルフォルダ等
REM =======================================================================_
REM 自分用フォルダ
IF /I %INPUT_STR%==MYDIR set RUN_FLG=1 & START " " "C:\Dir"
rem メモ帳(Excel)
IF /I %INPUT_STR%==EMEMO set RUN_FLG=1 & START "*" "C:\Dir\自分用_Excelメモ.xlsm"
REM コマンドプロンプトを起動
IF /I %INPUT_STR%==CMD set RUN_FLG=1 & START cmd
GOTO :APP_RUN_END
最後に
こうバッチを見ていると「日付」を入れるのが一苦労していますね
毎回 30ステップぐらいは日付の取得のための共通動作になっているので
まとめればいいのですが、バッチファイル1つで動かそうとするとこうなってしまいますね
まあ、そのうちにいい方法が見つかりましたら更新します