
1.SE小道具シリーズ:バッチで作る対話式ポータル
はじめに
こんにちは。 SHIFTのヤベと申します。
きまぐれに自分が現場で使っている独自の便利ツールの紹介をしたいと思います。
一応シリーズですが、第何回まで続くかは決めていませんので その点はご容赦ください。
さて本日は... ↓↓
1.1.バッチで作る対話式ポータル

見た目、こんな感じです。↑
はい。これは単に Windows のバッチファイルですね。
ツールの名前は smitty(スミッティー) と私はかってに呼んでいます。
※名前の由来は、昔(?)、某社サーバ製品のUNIX系OSに実装されていた対話式操作メニューを呼び出すコマンドです。
(この説明で製品名がピン! と来てしまうあなた、なかなかマニアックですね...)
※起動はアイコン、または検索から


使い方はいたって簡単...
数字や、コマンドを入力しエンターを押す...
すると、予め登録しておいたwebページや、フォルダ、ソフトウェア等が起動します。
構文はこんな感じ...↓
トップメニュー表示処理部分
※例文では echo で出力していますが、,txtファイルを type コマンド等で読ませるのも良し

メニュー選択後分岐処理部分

各ラベルでの処理部分

フォーマットはとてもシンプルです... (基本は同じ構文、ラベルを書き足していくだけ)
主なポイントは、、、
(以下、よく使う定番のバッチ構文)↓↓
・ユーザに入力を求める
set /P NUM1="番号を入力してください⇒
ユーザにキー入力を促し、入力された値を変数に格納します。 (NUM1 は変数名)
Linux の .sh やプログラミング言語だと定番の処理ですが、、、
windows バッチだと意外に、すぐに構文が出てくる方は少ないのでは...?
・ラベルへジャンプ
if %NUM1%==<ユーザの入力値> goto <ラベル名>
バッチには「関数」という概念がありませんが似たような処理がこれです。
goto で指定したラベルまで処理がジャンプします。
その他(1)
例えばブラウザでwebページを開きたい時、、、
予め、変数へ格納しておきます。
set browser1="C:\Program Files\Google\Chrome\Application\chrome.exe"
%browser1% https://<アクセスしたいページのURL>
このように書くと、記述する量が少なくて見やすいですね。
プログラムを実行したい時は 、、、
START "" <プログラムパスや変数>
このように書くと便利です。
1つ目の引数は 新たに開くコマンド実行画面のタイトルなのですが、特に必要ないので""としています。
※実行するプログラムファイルのパスだけ記述しても起動できます。が、この場合はそのプログラムが起動している間、ツールのプロセスが捕まってしまうので少し不便です(他のコマンドが実行できない)。
また cmd /Cでも同じことができます。
その他(2)
あと、よくやるのは、、、↓
edit と入力するとエディタでバッチファイルを開きスグに構文を編集できるようにしておく
メニュー表示は echo ではなく type <.txtファイル> のように記述
メニュー用.txtファイルを複数ページ用意し、コマンドで表示切替する
よく使うメニューは数字ではなくコマンドで登録しておくのもよい
新現場に配属されたら初日に、ツールのテンプレートを作っておく.
etc..
本日、以上です
が、いかがでしょうか?
まったく誰でも作れる簡単なツールですね!(たぶん簡単)
なのですが、、、
大事なポイントは
現場に行くと基本、超忙しい 😅 😷
ですよね。※もちろん、現場にもよりますが...
そして、最近(?)の現場は業務で使用するポータルやら、ソフトウェア、参照するドキュメントやフォルダ等、とにかくアイテムが多い...
私の個人的な感覚ですが、これらを毎回
マウスでクリックして...
閉じて...
また開いて...
とやっていると、あっという間に日が暮れてしまいます(定時です!)
忙殺を回避し「なんとかK」とやらに陥らないために、常日頃から小技を駆使して
ローカルのお事を自動化する
は、この業界では「基本のきっ!」ではないでしょうか。
では、また次回に。
執筆者プロフィール:Yabe
犬好きSEのYabeです。
前職ではWebマーケティングツールの開発を行うベンチャー企業でインフラSEとしてDevOps担当等も経験し、2023年、株式会社SHIFTへ入社しました。
最近はとくにクラウド技術の進化に伴い、柔軟で効率的なシステム開発、運用を実現するために日々学び続けています。
お問合せはお気軽に
SHIFTについて(コーポレートサイト)
https://www.shiftinc.jp/
SHIFTのサービスについて(サービスサイト)
https://service.shiftinc.jp/
SHIFTの導入事例
https://service.shiftinc.jp/case/
お役立ち資料はこちら
https://service.shiftinc.jp/resources/
SHIFTの採用情報はこちら
https://recruit.shiftinc.jp/career/
PHOTO:UnsplashのAsh Edmonds