PowerShellで色を変更する

最近このシェルを発見しました。 彼はすぐに本を探すようになっ 。 そして、すべてがうまくいくようで、コードは簡単に記述でき、vsbスクリプトと統合できますが、何らかの理由で、マストデイウィンドウに惹かれます。



そのため、PowerShellウィンドウを標準のcmdカラーに再描画し、独自の関数とエイリアスの自動起動を並行して設定することが決定されました。 また、碑文であるPSを使用すると、入力の提案が少し面倒になりました。PSは、色と一緒にAdobe Photoshopのロゴに似ています(Adobeには何もありません)。



したがって、以下の情報は初心者専用です。



まず、シェルを起動します。使い慣れたウィンドウが表示されます。

画像



最初に 、ps1拡張子を持つ個々のスクリプトを実行する権利が必要です。



次のコマンドを実行して表示できます:

Get-ExecutionPolicy
      
      





デフォルトポリシーはRestrictedで 、スクリプトの実行を禁止します。



3つのオプションがあります。

1.ポリシーをAllSignedに変更し、スクリプトに署名します( get-help about_signingコマンドを実行すると詳細を確認できます)。

2. RemoteSignedでポリシーに名前を付けます。これにより、ネットワークからダウンロードしたものを除くすべてのスクリプトを実行できます。

3.または、ポリシーをUnrestrictedに変更します。これにより、ダウンロードされたスクリプトを除き、実行するリクエストのスクリプトを実行できます。



私は2番目の道を選びましたが、それでも安全です。 したがって、次のコマンドでポリシーを変更します。



 Set-ExecutionPolicy RemoteSigned
      
      





画像

Y (はい)と回答したいポリシー変更のリクエストを受け取ります。



次に 、PowerShellと共に実行するスクリプトを作成します。

 New-Item -type file $PROFILE
      
      





理論的には、現時点では、このようなエラーが発生する可能性があります。

画像

しかし、大丈夫です。シェルは、 WindowsPowerShellフォルダーがMy Documentsに存在しないことを書き込み、作成して、コマンドを再度実行します。

画像

ご覧のとおり、 Microsoft.PowerShell_profile.ps1という名前の空のファイルが作成されました。



半分の作業を行いました。 スクリプトを実行する権限があり、デフォルトでロードされるスクリプトが作成されています。



第三に 、シェルに関する情報を受け取って変更する方法を学ぶ必要があります。

Get-Hostコマンドレットは次のことを行います。

画像

UIプロパティは実際にはオブジェクトであり、 (Get-Host).UIを導入すると、このオブジェクトには必要な設定のみを含むRawUIプロパティもあることがわかります。

 (Get-Host).UI.RawUI
      
      





画像

これらの設定は次のように変更できます。

 (Get-Host).UI.RawUI.WindowTitle = “” (Get-Host).UI.RawUI.BackgroundColor = “Black” cls
      
      





変更した設定をすぐに画面に表示するには、画面のクリーニングを担当するclsエイリアスを登録する必要があります。



もちろんこれはすべてクールですが、ウィンドウを閉じると設定がリセットされるため、起動時にシェルでロードされるファイルに設定を書き込みます。 Microsoft.PowerShell_profile.ps1ファイルを次のように編集します

 # We to Hell?! - Is't WorldCount! #    (Get-Host).UI.RawUI.ForegroundColor="Gray"; (Get-Host).UI.RawUI.backgroundColor="Black"; (Get-Host).UI.RawUI.CursorSize=10; (Get-Host).UI.RawUI.WindowTitle="WorldCount Console"; #   cls #   echo " "; echo ", WorldCount!"; echo " "; echo " "; #    $MyRoot = "C:\Shell\"; CD $MyRoot; #    function prompt { "[WorldCount:] " + $(get-location) + "> " }
      
      





そして、コードについて簡単に説明します。



最初の4つのプロパティは、ウィンドウを設定する役割を果たします。プロパティを設定した後、必須の消去-clsを行います。



Cd $ MyRoot; -自分自身を見つけたシェルをロードするとき、どのディレクトリに責任があります。



promt関数は、入力行の表示を担当する標準の修正された関数です。 PSを削除し、ニックネームを追加しました。



ファイルを保存し、シェルを再起動します。



次のようになります。

画像

最後に、 Microsoft.PowerShell_profile.ps1ファイルでエイリアスを簡単に記述できます。 言いましょう



 set-alias WeToFuck Get-Process
      
      







みなさん、この美しい貝殻をマスターして頑張ってください。



All Articles