2024年1月20日土曜日

(PC) powerShellで初回に知っていると便利なコマンド

powerShellを使おうとすると、初回にあると便利だなぁというコマンドが色々あります。

場合によっては1回しか使わないので、すっかり忘れてしまう事もあるので、備忘録代わりにここに記載させて下さい。


動かんぜ...スクリプトは!と言われた時の対処

Windows 11になっても、初期設定ではpowerShellのスクリプトファイル(.PS1)が動かないようになってます。

凄いですよね、スクリプトファイルの拡張子が何と.PS1のまま!!

てっきりWindows 7で爆誕したpowerShell 1.xxにあやかってのPS1であり、数ヶ月の暫定処置だろうなぁと思ったら...まさか5.xxの時代になろうとも、マルチプラットホームの7.xxになろうとも、正式に.PS1とは。

Windowsの64bitシステムフォルダがsystem32なのと同じ感じですかね。


#スクリプトファイルが動かないと言われた時の対処(例)

Set-ExecutionPolicy RemoteSigned -Scope CurrentUser





プロンプトの表示を現在のフォルダ名にする

powerShellのプロンプト表示を「現在のフォルダ名>」にするコマンドです。

普通はプロファイル(初期実行スクリプトファイル)に入れておいて、後は忘れる類のコマンドだと思いますが、途中で好きに変更も可能です。




#プロンプト表示を現在のフォルダ名にする
function prompt() {
    (Split-Path (Get-Location).Path -Leaf) + ">";
}





↑ROG FLOW Z13で実行してます。

こんな感じで、現在のフォルダ名になります。

フルパスにすると便利ですが、プロンプトが長すぎてコマンド入力する場所が無くなる悩みがあるので、私は仕事でもこれにしてます。


そもそもプロファイルの場所を知る方法と、フォルダ開く方法

powerShellを実行すると、自動的に実行されるスクリプトファイルを「プロファイル」と言いますが、それってどこにあるの?!という問題があります。

場所は簡単で「$PROFILE」と入力するだけでフルパスで表示されます!!

その次の段階の話です。

プロファイルの場所をエクスプローラーで直接開きたい!!場合は以下のコマンドです。





#プロファイルの場所を開く(初期実行スクリプトファイルを格納する場所)
II (SPLIT-PATH $PROFILE)




↑ROG FLOW Z13で実行してますが、このようにエクスプローラーがふわっと開きます。

場合によっては、powerShellのウインドウの後ろ側に表示される事があるので、タスクバーの表示に注視です。


なんですが、なんと、初回はスクリプトを格納するフォルダが作られていないんですよね。

一瞬、あまりにもガードがガチガチなので、マイクロソフトはpowerShellを使って欲しくないのかな?と不安になりますが、それは逆で、強力無比なシェルのためこうして門を閉めておかないと怖すぎるという事なんですよね、きっと。


それはそれとして、初回だと「フォルダがないっす」というようなエラーが出てくるんで、以下のように、「無かったら作り、あったら粛々と開く」コマンドで行けます。

初回だけだから別に手作業でいいよと言われたらそれまでですが。

ちなみに、IIは、Invoke-Itemの略称ですが、あまりにもIIしか使わないので正式なコマンド名を忘れてしまった私です。




#ただし初回はフォルダ自体が作られていないので、無かったら作る。
$myProfile = (SPLIT-PATH $PROFILE);
if(!(TEST-PATH $myProfile)) {NEW-ITEM -ItemType Directory $myProfile;}; 
II $myProfile;


↑powerShellとSQL-SERVERが大好き。

なんかこう、生まれて初めてパソコンの操作を知った「X68000」のX-BASICやHuman-68Kの思い出が美化されて胸の中に蘇るんですよね。