ソフトウェア開発者の日常

こだわりなく書きたいことを書いていきます。

PowerShellを学び始めました

PowerShellスクリプトファイルを作成し、スクリプトファイルをタスクスケジューラで起動して、ネットワークドライブを接続したくて、方法を調べています。
方法を調べていて、覚えておこうと思った点を書いていきます。

バージョンの確認方法

Windows 10であれば、PowerShellは、バージョン5.1系がインストールされているようです。
環境によって違う可能性があるので、PowerShellを起動して、バージョンを確認します。
「$PSVersionTable」と入力して、Enterキーを押せば、バージョン情報が表示されます。

PS C:\> $PSVersionTable

Name                           Value
----                           -----
PSVersion                      5.1.18362.752
PSEdition                      Desktop
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0...}
BuildVersion                   10.0.18362.752
CLRVersion                     4.0.30319.42000
WSManStackVersion              3.0
PSRemotingProtocolVersion      2.3
SerializationVersion           1.1.0.1

PS C:\>

PowerShellの画面

PowerShellスクリプトを実行できるように、実行ポリシーを変更

こちらの記事に書かれていますが、PowerShellスクリプトが実行できないようになっています。
qiita.com
有名と記事には書かれていますが、学び始めたばかりの僕には、有名だという認識はありませんでした。

実行ポリシーと呼ばれている設定を変更しなくてはなりません。
変更の方法は、まず、管理者でPowerShellを起動します。
管理者で起動したPowerShellで、「Set-ExecutionPolicy RemoteSigned」と入力して、Enterキーを押せば、変更を許可するか確認が表示されます。
yを入力して、Enterキーを押せば、変更が許可されます。

PS C:\> Set-ExecutionPolicy RemoteSigned

実行ポリシーの変更
実行ポリシーは、信頼されていないスクリプトからの保護に役立ちます。実行ポリシーを変更すると、about_Execution_Policies
のヘルプ トピック (https://go.microsoft.com/fwlink/?LinkID=135170)
で説明されているセキュリティ上の危険にさらされる可能性があります。実行ポリシーを変更しますか?
[Y] はい(Y)  [A] すべて続行(A)  [N] いいえ(N)  [L] すべて無視(L)  [S] 中断(S)  [?] ヘルプ (既定値は "N"): y
PS C:\>

レジストリが書き換えられるのか、再起動しても、変更は有効になっています。

タスクスケジューラへの登録

こちらの記事に書かれた通りに設定すれば、実行できます。
www.atmarkit.co.jp

ただし、PowerShellのバージョンが6.0以降の場合、実行ファイル名が、powershell.exeからpwsh.exeに変わっているので注意が必要です。
docs.microsoft.com
位置指定パラメータと呼ばれている、-Commandも、-Fileに変更されていると書かれているので、変更が必要になります。

詳細メッセージの出力

スクリプトの最初に
$VerbosePreference = 'Continue'
と書いて、適宜メッセージを
Write-Verbose "○○処理開始しました。"
と書けば、実行時に表示されます。
不要になれば、
$VerbosePreference = 'SilentlyContinue'
と書けば、表示されなくなります。


やりたいことを実現するために、気になったことをいろいろ試して、少しずつ理解してきました。

オンラインタスク管理アプリ Habiticaの利用を始めました

最近こちらの記事を読んで、「Habitica」でタスク管理を始めました。
jmatsuzaki.com
habitica.com

記事を読んでもらえばわかりますが、「Habitica」に登録した習慣やタスクを実行して、チェックを入れると、経験値やゴールドがもらえます。
経験値がたまると、レベルがあがります。
RPGでの戦闘がレベルアップにつながるのと同様に、習慣やタスクの実行が、レベルアップにつながります。

試しに、簡単で確実行うタスクを登録して、タスクを実行してチェックしていくと、どんどん経験値がたまって、レベルアップしました。

タスクを実行してチェックすると、アイテムが貰えるときがあります。
鎧などの装備のアイテムであれば、キャラクターに装着できます。
ペットのたまごが貰えたり、エサが貰えるときもあるので、ペットにエサをあげて、育てられます。
毎日ログインするだけでも、経験値がたまります。

現在の状況

Habitica」には、

  • 何度でも実行して、チェックできる「習慣」
  • 定期的に実行して、チェックできる「日課
  • 1度のみ実行して、チェックできる「To Do」

の区別があります。
「ごほうび」という区別もありますが、どのような扱いなのか、まだ試していません。
「ごほうび」なので、なにか特別なことができたらチェックするように、登録すべきなのかもしれません。
Habiticaの実際の画面

利用を初めてから10日以上経っていますが、レベルアップをしたくて、毎日「ToDo」となるタスクを登録して、実行して、チェックしています。
繰り返し行うタスクも「日課」として登録して、毎日実行するタスク、毎月1日に行うタスク、毎月25日に行うタスク等、繰り返しの周期を設定して、実行しています。

レベルダウンもあり?

記事にもありますが、タスクを実行しないと、体力が減ったり、レベルが下がったりするようです。
レベルダウンになるのが怖くて、実行できるか怪しいタスクは、「日課」には登録しないで、まずは「ToDo」に登録しておくのが良さそうです。
「ToDo」は、チェックしないと色が変わりますが、体力が減ったり等の影響はなさそうです。


タスクにメモを登録したい場合、タスクを編集機能で登録しなければならず、「Toodledo」でのメモの登録より手間がかかります。
手間がかかる部分もありますが、レベルアップをし続けたいために、当面利用を継続する予定です。

日経ソフトウエア 2020年7月号感想

【特集1】Python×Excel   もっと活用術

Excelでのデータの受け渡しはちょくちょくあるので、PHPで処理を書くより楽なのか、比較しながら採用していきたいと考えています。

【特集3】Visual Studio 2019でPythonはもっと楽しくなる!   前編

Visual Studio CodePythonのコードを書くというのは知っていますが、Visual Studio 2019を開発環境として利用するという認識はありませんでした。
実行もでき、デバッガも利用できそうなので、Visual Studio 2019のエディタになれている方には、使いやすそうです。

【特集4】自然言語解析 AIアルゴリズム BERT ~その「概要」から「実装」まで~   前編

Googleが2018に世に送り出した「BERT」(バート)という自然言語解析アルゴリズムのおかげで、文章内の単語の関係性の把握が向上して、アメリカでの英語によるGoolge検索では、検索結果の改善がされているそうです。
日本語でも改善するようなので、日本での日本語によるGoogle検索にも、導入して欲しいです。

【特集5】Pythonで自動化   ~「機密書類」自動振り分けプログラム   後編~

前編のWord/Excel/PowerPointからのテキスト抜き出しに、PDFからのテキスト抜き出しを追加しています。
文字を、ファイルを問わず、横断的に検索できるようになります。

Pythonライブラリ徹底攻略 「圧縮・解凍に使うライブラリ」

最近C#でZIP圧縮する際に、引数の指定で、圧縮しないでファイルを1つのアーカイブにまとめられるのを知り、Pythonも当然できるんだよね?と思いながら読んで、当然のように説明されていました。
標準ライブラリのshutilに、フォルダの圧縮ができる、make_archiveがありますが、こちらは圧縮しないという指定がないので、フォルダを単にアーカイブしたい場合は、使えないですね。
文字化け対応については、対処方法を知りませんでした。
Windows標準の機能で、圧縮ファイルを展開していないからかもしれません。

Pythonで楽しむ身近なアルゴリズム 「新宿から秋葉原までの最短経路は?」

最短経路を探す、「ダイクストラ法」のアルゴリズムは、学ぶ機会がなくて、今回初めてじっくり読みました。
機会があれば、使ってみます。

【極厚冊子付録】基礎からしっかり学ぶ C#の教科書   C# 8対応   ダイジェスト版

最近C#でプログラムを作成する機会があり、C#8ではどんな機能が増えたのか、参考にしました。