2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

パワーシェルの高速化処理、カレンダ表示、Windowsコマンドなど、ツールボックスに登録して使う便利なバッチファイル

Last updated at Posted at 2024-10-31

1.はじめに

 最近というかいつもですが、Windows10は勝手にバージョンアップされるため困ったものです。特にパワーシェル(PSH)はいつも色々変更されているようで、Windows10初期バージョンと比べてパワーシェル起動時間が10倍以上遅くなったように思います。そこでパワーシェル起動時間を少しでも高速化する[ngen.exe]を使ったPSH短文、そして合わせて、カレンダ表示PSH短文、windowsコマンドなど「List窓項目をダブルクリック起動利用」できるツールボックスのバッチファイル(.bat)を作成したので紹介します(結構便利です)。なお他のPSH短文例やWindowsコマンド例は参考サイトに沢山ありますのでコピーし登録してご利用頂くと幸いします。 PSH短文関連サイトWinコマンド関連サイト
<注意>このツールの動作確認は十分実施していますが、ご利用に当たって何か問題が発生した場合、自己責任での対応でお願いいたします。

2.事前準備

 それでは【マウス右ボタン⇒[新規作成]⇒テキストドキュメント】押下して新規ファイルを作成し、[新しいテキスト ドキュメント.txt] をダブルクリックしメモ帳を起動ください。
 次に下記の[コピーList]をメモ帳にコピー&ペーストして貼り付けます。
そして、メモ帳の左上[ファイル]⇒[名前を付けて保存]⇒ファイル名[PshToolBox.bat]を入力し⇒文字コード[ANSI]に設定して[保存]を押下した後、メモ帳を終了します。
★注:文字コード欄が[ANSI]設定であることを確認してください。
 あとは[PshToolBox.bat] をダブルクリックすると下図のList窓が開きます。

image.png

3.利用方法

(1) [パワーシェル起動高速化]をダブルクリックすると、PSH管理者[窓]へ入力し[ngen.exe]を起動して、パワーシェル高速化処理が始まります。(最初は結構時間がかかります。)
(2) [大きいカレンダ]をダブルクリックすると、大きなフォントでのカレンダ窓が表示されます。
(3) [Tool_List編集]をダブルクリックすると、メモ帳で[PshToolBox.bat]が開きますので、自由にPSH短文やWindowsコマンドを登録保存して使います。PSH短文関連
(4) 良く使うWindowsコマンドも登録しておくと何かと便利です。Winコマンド関連
(5) 複数利用から背景色を7行目(\$BakColor)で設定可能にしました。背景色の設定例

4.コピーList

(履歴1102:1/2行目 Rem->RemoteSignedに修正)
(履歴1115:7/13/34行目 背景色の設定追加)

pshToolBox.bat
@powershell -exe RemoteSigned -win Hid "$fl=\"%~f0\";$ss=[scriptblock]::create((Cat $fl|?{$_.readcount-gt 1})-join\"`n\");&$ss" %*&exit
##[DBG]@powershell -exe RemoteSigned "$fl=\"%~f0\";$ss=[scriptblock]::create((Cat $fl|?{$_.readcount-gt 1})-join\"`n\");&$ss" %*&Pause&exit

##Ver1.01 2024/1015 by ryu ----
using namespace System.Windows.Forms; Add-Type -AssemblyName System.Windows.Forms,System.Drawing; ##★GUI
function dbg($cc){[MessageBox]::Show($cc)}; function dbc($zcc){Write-Host $zcc;}; ##★DBG
$BakColor="#CCFFC8"; $global:szColorUrl='https://ryupapa008.blogspot.com/p/blog-page_6.html';
##★[Listツールの登録一覧]--------------------------------
$global:zzToolList="___[Ver1.01]_______;---
    [パワーシェル起動高速化];    ssNGen
    [大きいカレンダ];       ssBigCalen
    [Tool_List編集];        notepad.exe $fl 
    [背景色Codeのサイト表示];start $szColorUrl    
    ---;                    ---
    パワーシェル[窓];       Start powershell 
    DOS[窓];                Start cmd
    パワーシェル[管理窓];   Start -Verb runas powershell 
    ---;                    ---
    Windows[設定];          start ms-settings:
    電卓_計算;              calc.exe
    タクスマネージャ;       taskmgr.exe
    デバイスマネージャ;     devmgmt.msc
    コントロールパネル;     control.exe
    Windows管理ツール;      control.exe admintools
    システム情報;           msinfo32.exe
    システム構成;           msconfig.exe
    デスク掃除(clean);      cleanmgr.exe
    ドライブ最適化;         dfrgui.exe
";##-------------------------------------------------------

##●Listツールの表示処理  ##★各項ダブルクリック実行
##
function global:ssToolBoxList($zzList){ $global:fmToolBox =New-Object Form -Pro @{ Size ="320,540"; Text="【PSH Tool Box】"};
    $global:szListBox=New-Object ListBox -Pro @{ Dock="Fill"; Font='"BIZ UDゴシック",12'; BackColor=$BakColor;}; $fmToolBox.Controls.Add($szListBox); 
     $global:szToolList=$zzList.split("`n"); foreach($zcc in $szToolList){ $aa=$szListBox.Items.Add( ($zcc.split(";"))[0] );};
    $szListBox.Add_DoubleClick({ $zcm=$szToolList[$szListBox.SelectedIndex].split(";"); $zcc1=$zcm[1].trim(); Iex($zcc1); });
};

##●PSH起動の高速化
##
function ssNgen(){ $zcc='-noe cd c:\
  Set-Alias ngen   @(dir (join-path ${env:\windir} \"Microsoft.NET\Framework\")   ngen.exe -recurse |sort -descending lastwritetime)[0].fullName
  Set-Alias ngen64 @(dir (join-path ${env:\windir} \"Microsoft.NET\Framework64\") ngen.exe -recurse |sort -descending lastwritetime)[0].fullName
  [appdomain]::currentdomain.getassemblies() | %{ if($_.location -match $(\"\\assembly\\GAC_64\") ){
  ngen64 install $_.location }else{ ngen install $_.location }; } ';
  Start -Verb runas -FilePath powershell.exe -Arg "$zcc";
};

##●大きいカレンダ
##
function ssBigCalen(){ $fmCal=New-Object Form -Pro @{ Location="100,50"; Size="380,500"; };
  $zMonCal=New-Object MonthCalendar -Pro @{ Font="'Meiryo UI',28"; TrailingForeColor="192,192,0"; }; 
  $fmCal.Controls.Add($zMonCal); $fmCal.Showdialog();
};

##★List窓の表示
(ssToolBoxList $zzToolList); $fmToolBox.ShowDialog();##★表示

5.プログラム説明

[1行目] パワーシェル(PSH)文をバッチファイルで起動する文です。
[2行目] コメントにしてますが、何か新規のPSH文をデバッグするとき、こちらの文を使いDOS窓表示モードにしてデバッグします。
[5行目] PSHをGUI窓で利用するときの文です。
[6行目] 同上のときのデバッグ用関数です。 利用例)dbg "aa=\$aa"; dbc "bb=\$bb"
[8~28行目] List表示の登録項目です。 [登録コマンド名称; 起動コマンドや関数]
[ssToolBoxList 関数] List登録の窓生成、項目ダブルクリック起動などです。
[ssNgen 関数] PSH起動の高速化処理です。
[ssBigCalen 関数] カレンダ表示処理です。
[最後の行] List窓関数を処理して、ダイアログ表示します。
以上

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?