Pythonを学ぶならコマンドプロンプトを知っておきたい、と思った話
文系出身で事務屋ですが、必要に駆られてちょいちょいプログラミングをしています。
VBA、Uipath、Pythonと学びながら仕事に生かしておりましたが、Python学んでて思ったのが、
・Pythonを便利に動かすためにはWindowsの機能を活用したほうがよい
・Pythonを身に着けるのはかっこいいけど、ホントに簡単なことはコマンドプロンプトで簡単にできる
ということです。
Windowsの機能を活用したほうが良い
私はPythonの学習には下記の書籍を用いております。
一度買って、Pythonやらなくなってメルカリに売って、またPythonやりだしてメルカリで購入したほど、この本が参考になります。(メルカリに貢献し過ぎました)
この書籍の中で、急にコマンドプロンプトやバッチファイル操作が出てきて慌てふためきましたが、十分に寄り道してコマンドプロンプトやバッチファイルを調べてみて、知らないでいたことがもったいないと反省しきりです。
プログラマーをちゃんとやっている人は、しっかりこの辺の道を通過してきているのでしょうが、独学で身に着けた者にとっては目からうろこです。
「Pythonでプログラミングをして、対話型ダイアログを出して入力された文字を引数にする」といったことも「Pythonの起動をバッチファイルにして起動と引数をセットに入力して一発で動かす」ことができます。
そもそも起動することも「Winキー+R」でさっと立ち上げられるから思いついたときにできます。→マウス操作ゼロの快適さ!
また、以前書いたタスクスケジューラを掛け合わせれば、条件や時刻等で起動させることも容易です。
Windows機能はもとから便利なのです!
簡単なことはコマンドプロンプトでできる
たとえば、メッセージを表示してからブラウザでURLを開く、というだけのことであれば、下記で済みます。
@echo off
echo Pythonを学ぶならコマンドプロンプトを知っておきたいと思った話
echo;
pause
start https://www.yahoo.co.jp
これで本記事の見出し画像と同じメッセージが表示されて、何かキーを押せばYahooのページが開きます。
3行目の「ECHO;」は1行スペース開けたかっただけなので、なくてもOK。
これとタイムスケジューラを組み合わせれば、毎日18:00に「今日の出来事をNoteに書きましょう!」と言ってNoteを立ち上げることも可能です。
@echo off
echo 今日の出来事をNoteに書きましょう!
pause
start https://note.com/
この4行をメモ帳に書いて、「sample.bat」というように、「.bat」ファイルで保存します。
このとき、
・文字コードは「UTF-8」から「SJIS(またはANSI)」に変えてください。
・改行コードは「CRLF」を選択してください。
→ いずれも設定が違うと文字化けしますので。
こうして保存したファイルをクリックするだけで、実現できます。素晴らしい!あとは、タスクスケジューラと組み合わせるだけです。
今日のコマンドの解説
@echo off
この行は、アリとナシで試してみればわかりやすいのですが、これをつけないと、「入力したコマンド」と「実行結果」の両方が表示されます。これをつけることによって「実行結果」のみが表示されます。
お試しいただくのが理解への近道ですね。
echo
エコーは、メッセージを表示させます。
「echo こんにちは」と書けば、「こんにちは」と表示してくれるわけですね。VBAのMsgBoxと同じ。
echo;
改行の役割です。
pause
コマンドに表示された文字列は、表示が終わると、消えてしまいます。
コマンドプロンプトで1行1行入力している分には問題ないのですが、バッチファイルで動かすと、パッと表示されて一瞬で消えてしまいます。
そのため、画面表示を残すための一時停止ボタンの役割を担ってます。
start
このあとにURLを記述しておけば、そのURLを開きます。お気づきかと思いますが、echoもstartも、ダブルクォーテーションで囲わなくてもOKです。
ということで本日は以上です。今度は環境変数とかもまとめておきたいですね。