2.7 PSHメモ帳のリリース。GUI窓PSH統合アプリ(基本編まとめ)

●PSHメモ帳はwindowsメモ帳より快適性アップします

◎この記事は「その2基本編」まとめの位置づけです。[PSHメモ帳]の目的は上記サブタイトルに記載の「パソコン利用を快適にすること」です。他方、Windowsメモ帳を使っていると「こんなことが出来たら」と思うことが多々あると思います。そこでパワーシェル(PSH)を使いその部分を[PSHメモ帳]として実現してみました。基本編[2.6]で紹介しましたが登録部とPSH処理部をファイル分割したため約120行のPSH文で今回のアプリを作成しています(コピペできるレベルと思います)。ご利用頂くと幸いします。

進む>

◎このアプリは「GUI:Graphical User Interface」の専用窓を生成し、メニュ釦、マウス、ドラッグ&ドロップ、ダブルクリックをオペ操作に使います。そして複数行のパワーシェル(PSH)文を記載して実行可能とし、PSH窓(紺色)表示有り/無し/連続起動のPSH処理も可能です。更に他のPSHファイル(ps1)をドラッグ&ドロップで実行可能としまたPSH作成のDBG環境も考慮していることから「GUI窓利用のPSH統合アプリ」としています。

★注意:PSHメモ帳の動作確認は十分対応していますが、問題が発生した場合、自己責任での対応でお願い致します。
★注意:PSHメモ帳はテキストファイル(txt)の文字コードにANSIを使います。他のテキストファイルをPSHメモ帳で利用する場合、Windowsメモ帳で[ANSI]設定保存する必要があります。この場合も自己責任での対応でお願い致します。



●PSHメモ帳の起動方法と機能概要

◎[起動方法] 
PSHメモ帳は次の[起動&TopPageファイル(bat)][PSHファイル(ps1)]で構成されます。

[List2.7.1]->[wPshMemo201.bat]...(起動用)
[List2.7.2]->[wndPshPrg201.ps1]..(本体)

上記2つのファイルをWindowsメモ帳を使いコピペ操作で張付けて作成します。そして[
wPshMemo201.bat]をダブルクリック[WC]すると起動し下図の[TopPage]画面を表示します。


   [図1]  PSHめも帳の起動画面[TopPage]

PSHメモ帳の開始ウインドウ


◎[機能概要]
PSHメモ帳の[TopPage]表示内容にこのアプリの機能概要を上記①~⑪番号に記載しています。また[TopPage]は[wPshMemo201.bat]の起動ファイルに記載して編集は[ファイル]->[TopPage編集]の押下で行います。また「PSHメモ帳利用説明」を基本編[2.8]に記載します。ここではこのアプリの特徴を以下に記載します。
  1. PSHメモ帳はファイル(txt)毎に[背景色][文字寸法][画面寸法]を設定できる。
  2. ファイル読込は[File窓][ドラッグ&ドロップ][ファイル名登録]の3種類ある。
  3. PSHファイル(ps1)を[ドラッグ&ドロップ][ファイル名登録]で起動できる。
  4. ファイル内にPSHやDOSコマンド登録しダブルクリックで起動できる。
  5. 日本語Urlアドレスを登録しダブルクリックでWebサイト表示できる。
  6. フォルダの[登録][ドラッグ&ドロップ]でフォルダ管理ができる。
  7. コマンドやアプリを自由に簡単登録し利用できる。

◎[DOS窓(小窓)について]
[List2.7.1]では、DOS窓表示モードに設定しています(DBGモード)。未表示にする場合は[ファイル][TopPage編集]から1行目を次に修正します(rem 文字削除)。

 1行目:[@echo off &rem if not ...]-->[@echo off &if not ...]


●PSHメモ帳の作成&構築

◎次の手順で作成&構築ください。動作確認後は、名称等変更可能です。

[S1] Desktop(Login位置)に、フォルダ[wGuiPsh2]を作成する。

[S2] (補足.その1.1導入編に操作方法の図を記載します。)
このフォルダ内にマウス[右釦]->[新規作成]->[テキストドキュメント]から、新規ファイル(.txt)を作成しダブルクリックでメモ帳を起動し、次の[List2.7.1]をコピー貼付けして、[ファイル]->[名前を付けて保存]->ファイル名[wPshMemo201.bat]を設定して ->★(注)文字コード[ANSI]指定で[保存]押下。....起動ファイル(wPshMemo201.bat)作成完了。

[S3] 上記と同様に残り3つのファイルを以下のコピペListから作成する。

 1)[List2.7.1] -->[wPshMemo201.bat] [Step2]の起動&TopPageファイル
 2)[List2.7.2] -->[wndPshPrg201.ps1] PSHプログラム
 3)[List2.7.3] -->[wndPshTxt201.txt] PSH登録の例
 4)[List2.7.4] -->[wndPshTxtShort201.txt] PSH短文登録の例


◎フォルダ内のファイル構成を次に記載します。

[wGuiPsh2]
 +wPshMemo201.bat ..今回
 +wndPshPrg201.ps1 ..今回
 +wndPshTxt201.txt ..今回
 +wndPshTxtShort201.txt .今回
(+tst_Butn_Mouse01.ps1).PSH動作確認用
(+wndPshPrg201_add.ps1)..[2.8機能追加] 



●コピペ[List2.7.1] [wPshMemo201.bat] 起動&TopPageファイル
V2.02:修正2024/0904:6行目,7行目(TopPageも設定変更可能にした)

@echo off &rem if not "%~0"=="%~dp0.\%~nx0" (start /min cmd /c,"%~dp0.\%~nx0" %* &exit) &rem ★DOS窓mini化
powershell -ExecutionPolicy RemoteSigned "$fln=(echo %0); .\wndPshPrg201.ps1 $fln"
rem pause;
exit;

<##Ver2.02--[TopPage]  @BakColor:#C0E0C0   @FntSize:13  @WndSize:1080,780 
##---[PSHめも帳](Gui窓PSH処理統合)--TopPage編集は[ファイル]->[TopPage]編集-------
##  [&][>][!]行をダブルクリック起動[WC]。マウス右釦:表示/編集/クリップ処理/保存/検索など。

##  1) [&]行:①窓有りPSH起動   [&&]行:②窓無しPSH起動   [&&&]行:③継続PSH起動   [;]行:④PSH行連結
##  2) [&FSet&]行:⑤登録ファイルのFile設定->窓表示/編集->[File保存](フォルダ設定で下記⑧)
##  3) explorerからGui窓へD&Dropで、⑥TXTファイル(.txt)の窓表示/編集、⑦PSHファイル(.ps1)の起動
##  4) フォルダ(Dir)のD&Dropで、⑧Dir管理[!readMe00.txt]作成/編集(フォルダ管理)
##  5) ⑨[右釦]>[ツール]>[Dir/File取得]で、Dir/FileをGet->(Dir行/File行の[WC]操作で表示/起動)
##  6) ⑩TopPage/PshFile/AddFileは[ファイル]から編集可能
##  7) ⑪その他(Web表示、DosCmd処理、MsgBox表示、検索窓など)

##★PSH短文ファイル指定で起動⑤...Dir相対指定
&FSet&  wndPshTxt201.txt                    ##★[WC] 基本編のPSH登録窓

##★PSH短文ファイル指定で起動⑤...Dirフル指定
&FSet&  $HOME\Desktop\wGuiPsh2\wndPshTxtShort201.txt  ##★[WC] PSH短文アプリ9件窓

##★フォルダ指定で管理(!readMe00.txtの生成)⑤⑧
&FSet&  $HOME\Desktop\wGuiPsh2               ##★[WC] wGuiPsh2フォルダ管理

##★パワーシェルファイル(.ps1)の[ドット+SPC]で起動⑦・・・その2.6の[コピペList2.6.5]
&  . .\tst_Butn_Mouse01.ps1                  ##★[WC] (釦/マウス利用DBG:Dir相対指定)

##------------------------------------------------------------------------------------
##★[&]①窓有り起動   [&&]②窓無し起動   [&&&]継続PSH起動   [;]④行連結

&  Dir  C:\                          ##★[WC] ①Dir起動
&& mspaint                           ##★[WC] ②窓無し:ペイント起動

&&&  $global:aaa=10; dbg $aaa;             ##★[WC] ③Step1:継続:global変数に代入
&&&  $global:aaa+=3; MsgBox "$aaa です";   ##★[WC]  Step2:継続:⑪MsgBox表示

&  for($ii=0; $ii -lt 10; $ii++ ){  ##★[WC] ④複数行(4)連結しCMD実行
;    $dd = $ii * 2;
;    "Data = $dd  です";
;  }; 

##------------------------------------------------------------------------------------
![WC]日めくりカレンダ;  "https://www.himekuricalendar.com/"  ##★[WC]⑪
>  Dir c:\                       ##[WC] Dir起動 ・・・・[>]Dos窓あり
>  Ver & Date /t                 ##[WC] Verとdateの起動
>  cd  c:\tmp                    ##[WC] フォルダ移動([>]のみ)
>> calc                          ##[WC] 電卓・・・・・・[>>]Dos窓無し
>> ms-settings:                  ##[WC] 設定のDlg窓
[wPshMemo201.bat]

●コピペ[List2.7.2]  [wndPshPrg201.ps1] PSHプログラム
    V2.02:修正2024/0904:11行目,12行目(TopPageも設定変更可能にした)
##Ver2.02 2024/0904 by ryu #####################################
##
##STT: ●●「Pshめも帳」(Gui窓PSH処理統合アプリ) 

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; }; function dbt($cc){ $mMain.Text="[V2.02]"+$cc; }; ##★DBG
function ssMsgYesNo($cc0,$cc1){ return [MessageBox]::Show($cc1,$cc0,"YesNo"); };
##★初期設定データ
$szTool=$MyInvocation.MyCommand.Path; $szEditor="C:\winfree\Editor\Sakur\sakura.exe"; if(Test-Path $szEditor){;}else{ $szEditor="notepad.exe"; };
$szBkColor="#C0E0C0"; $szFont="BIZ UDゴシック"; $szFSize="13"; $szWSize="1080,720"; $global:szFile="";
function ssTopView($zfl){ $bb=(Cat $zfl -Raw); $tBox.Text=$bb.substring( $bb.indexof("`n<"+"##" )+1); ssViewColor;
    $tBox.SelectionStart=0; dbt(" 【TopPage】 "+$fln); cd (Split-Path $zfl -Parent); }; ##★表示
##★メイン窓/編集窓の生成   ##★窓寸法(WW,HH)  ##★文字種類/寸法  ##★背景色
$mMain =New-Object Form -Pro @{ Size="$szWSize"; }; $tBox =New-Object TextBox -Pro @{ Font="$szFont,$szFSize"; BackColor=$szBkColor;
    Dock="Fill"; Multiline=$True; AcceptsReturn=$True; AllowDrop=$true; ScrollBars=[ScrollBars]::Vertical;  }; $mMain.Controls.Add($tBox);
##★DLG登録
$dReadBox =New-Object OpenFileDialog -Pro @{ Title="【読取】ファイル選択"; Filter='txtファイル(*.txt)|*.txt|全て(*.*)|*.*'; InitialDirectory='Desktop';};
$dSaveBox =New-Object SaveFileDialog -Pro @{ Title="【保存】ファイル設定"; Filter='txtファイル(*.txt)|*.txt|全て(*.*)|*.*'; InitialDirectory='Desktop';};
##★メニュ生成
$dListMenu =New-Object MenuStrip -Pro @{ Font="$szFont,12"; };  $mMain.MainMenuStrip =$dListMenu; $mMain.Controls.Add($dListMenu);
##★
function ssDMnMenu($zcc){ $zmm=New-Object ToolStripMenuItem; $zmm.Text=$zcc; $dListMenu.Items.AddRange($zmm); $global:szMnBas=$zmm; return $zmm;}
function ssDMnMSet($zcc){ $zmm=New-Object ToolStripMenuItem; $zmm.Text=$zcc; $szMnBas.DropDownItems.AddRange($zmm); $global:szMnBas2=$zmm; return $zmm;}
##★メニュバーへ登録
 $szMenu1=ssDMnMenu "ファイル";
  (ssDMnMSet "[File再読取]").add_Click({ ssFileSet $szFile });
  (ssDMnMSet "[File保存]"  ).add_Click({ ssFileSave 0 $szFile });
  (ssDMnMSet "File読取[窓]").add_Click({ if( $dReadBox.ShowDialog() -eq "OK" ){ ssFileSet ($dReadBox.FileName) }; });
  (ssDMnMSet "File保存[窓]").add_Click({ ssFileSave 1 $szFile });
  (ssDMnMSet "----"  ).add_Click({;});
  (ssDMnMSet "[TopPage]編集").add_Click({ & $szEditor $fln });
  (ssDMnMSet "[<Psh編集>]" ).add_Click({ & $szEditor $szTool });
(ssDMnMenu "[TopPage]" ).add_Click({ ssTopView($fln); $global:szFile=""; });
(ssDMnMenu "[File保存]").add_Click({ ssFileSave 0 $szFile });
 $szMenu4=ssDMnMenu "編集";
  (ssDMnMSet "[元に戻す]").add_Click({ $tBox.Undo() });   (ssDMnMSet "[コピー]"  ).add_Click({ $tBox.Copy() });
  (ssDMnMSet "[貼付け]"  ).add_Click({ $tBox.Paste()});   (ssDMnMSet "[カット]"  ).add_Click({ $tBox.Cut()  });
  (ssDMnMSet "[検索窓]"  ).add_Click({ $szSchBox1.Text=$szSetChaText; $global:szfindPos=$tBox.SelectionStart; $szSchForm.Show(); });
(ssDMnMenu "[explorer]"  ).add_Click({ explorer (pwd) });
(ssDMnMenu "[Fileメモ帳]"  ).add_Click({ if($szFile -ne ""){ notepad.exe $szFile }; });
 $szMenu7=(ssDMnMenu "[Menu7]" ); $szMenu8=(ssDMnMenu "[Menu8]" );

##★右釦メニュ ##★編集 ##★再表示 ##★クリップ処理 ##★機能追加
$tBox.ContextMenuStrip =$conMenu =New-object ContextMenuStrip -Pro @{ Font="BIZ UDゴシック,12"; }; 
function ssRbtMenu($zcha){ $aa=$conMenu.Items.Add(($ccc=New-Object ToolStripMenuItem)); $ccc.Text=$zcha; $global:zzSrp=$ccc; return $ccc; };
function ssRbtSMnu($zcc ){ $aa=$zzSrp.DropDownItems.Add( ($ccc =New-Object ToolStripMenuItem) ); $ccc.Text=$zcc; return $ccc;};
  (ssRbtMenu "[TopPage]表示").add_Click({ ssTopView($fln); $global:szFile=""; });
  (ssRbtMenu "[元に戻す]"   ).add_Click({ $tBox.Undo()  });
  (ssRbtMenu "[コピー(クリップ)]").add_Click({ $tBox.Copy()  });
  (ssRbtMenu "[貼付け]" ).add_Click({ $tBox.Paste() });
  (ssRbtMenu "[カット]" ).add_Click({ $tBox.Cut()   });   
  (ssRbtMenu "[File再読取]" ).add_Click({ ssFileSet $szFile });
  (ssRbtMenu "[TopPage]編集").add_Click({ notepad.exe $fln });
  (ssRbtMenu "[File保存]" ).add_Click({ ssFileSave 0 $szFile; });
  (ssRbtMenu "[検索窓]"   ).add_Click({ $szSchBox1.Text=$szSetChaText; $global:szfindPos=$tBox.SelectionStart; $szSchForm.Show(); });
$zzSrp0=ssRBtMenu "[ツール]"; (ssRBtSMnu "メモ帳の利用" ).add_Click({ if($szFile -ne ""){ notepad.exe $szFile }; });
    (ssRBtSMnu "Fileの再読取" ).add_Click({ ssFileSet $szFile });
    (ssRBtSMnu "Dir/File取得" ).add_Click({ $tBox.SelectedText=(dir -name)-join "`r`n" });
    (ssRBtSMnu "Dir/File取得:再帰").add_Click({ $tBox.SelectedText=(dir -name -Rec)-join "`r`n" });
    (ssRBtSMnu "年月日時取得" ).add_Click({ $tBox.SelectedText=get-date -format "yyyy年MM月d日(ddd) HH:mm:ss"; });

##★マウス[WC]操作 ##★[>][>>]DOS処理 ★[!]Web ★[Dir/File] ★[&]行連結 ★[&&&] ★[&FSet&] ★[&] ★[&&] ★機能追加File
$tBox.Add_DoubleClick({ $ln=((($tBox.Text).substring(0,$tBox.SelectionStart)).split("`n")).count-1;
  $zcc=(($tBox.Lines[$ln]-split"##")[0]).trim(); if( $zcc.length -le 4){ return; };
  if( $zcc.startsWith("> ") ){ $zcc=$zcc.substring(1); if($zcc.contains(" cd ") ){ Iex($zcc) }; Start Cmd -Arg "/k $zcc"; return; }; 
  if( $zcc.startsWith(">> ")){ $zcc=$zcc.substring(2); if($zcc.contains("explorer ")){;}
        else{ $zcc=($zcc.replace(" shell:","explorer shell:")).replace(" ms-","explorer ms-"); }; Start -NoN Cmd -Arg "/c $zcc"; return; }; 
  if( $zcc.startsWith("&") ){;}else{ if( $zcc.startsWith("!") -and $zcc.contains("http") ){ Iex("Start "+($zcc.split(";"))[1]); return; };
      if( Test-Path $zcc -PathType Container ){ explorer $zcc; return; }; if( Test-Path $zcc ){ Start -NoN Cmd -Arg "/c $zcc"; return; }; 
      return; };
  for( $ii=1; $ii -lt 200; $ii++ ){ $cc=$tBox.Lines[$ln+$ii]; if($cc -eq $null){ break; };
      if( $cc.startsWith(";") ){ $zcc+="`n"+($cc.substring(1)).trim(); }else{ if( $cc.startsWith("#") ){ continue;}; break; }; };
  if( $zcc.startsWith("&&& ")){ $zcc=$zcc.substring(3); $tBox.SelectionStart+=4; Iex($zcc); return;}; 
  if( $zcc.startsWith("&FSet&")){ $zcc=$zcc.substring(6).trim(); Iex("ssFileSet `"$zcc`""); return; }; 
  if( $zcc.startsWith("& ")  ){ ssPshAct 0 ($zcc.substring(1).trim()); return; };
  if( $zcc.startsWith("&& ") ){ ssPshAct 1 ($zcc.substring(2).trim()); return; }; 
}); $fladd=$szTool.replace(".ps1","_add.ps1"); if( Test-Path $fladd ){ . $fladd; };
##★ドラッグ&ドロップ
$tBox.Add_DragEnter({$_.Effect ="All";});
$tBox.Add_DragDrop({ $zcc=@(([DataObject]$_.Data).GetData("FileDrop")); if(Test-Path $zcc ){;}else{ return; };
    if($zcc.endsWith(".ps1") ){ Start powershell -Arg "-noe $zcc"; }else{ ssFileSet $zcc; };  });
##★PSH短文起動(0:窓あり/1:無し)
function ssPshAct($zcmd,$zcc){ $zcc=$zcc.replace('"','\"'); if($zcmd-eq 0){ Start powershell -Arg "-noe $zcc";}else{ Start -NoN powershell -Arg "$zcc"; }; };
##★ファイル取得&表示  ##★[File保存]右釦に追加
function ssFileSet($zfl){ if(($zfl -eq "")-or($zfl -eq $null)){return;}; if(Test-Path $zfl -PathType Container){ $zfl="$zfl\!readMe.txt"; };
    if( $zfl.endswith('.txt') ){;}else{ dbg "[ERROR]`n>>> No File.txt`n$zfl"; return; };
    $global:szFile=$zfl; if( Test-Path $szFile){ $tBox.Text=Cat $szFile -Raw; ssViewColor; dbt("△File読取△$szFile"); }
    else{ $tBox.Text="#![Dir管理] @BakColor:$szBkColor  @FntSize:$szFSize @WndSize:$szWSize`r`n";  dbt("【新規】$szFile"); }; 
    $tBox.SelectionStart=0; if( $szFile.Contains('!readMe.txt') ){ cd (Split-Path $szFile -Parent); };
};
##★File保存
function ssFileSave($zcmd,$zfl){ if($zfl -ne ""){ $dSaveBox.InitialDirectory=(Split-Path $zfl -Parent); $dSaveBox.FileName=(Split-Path $zfl -Leaf); };
    if( $zcmd -eq 1 ){ if( $dSaveBox.ShowDialog() -ne "OK" ){ return; }; $zfl=$dSaveBox.FileName; if($zfl -eq ""){ return;}; }
    else{ if( ($zfl -eq "")-or((ssMsgYesNo "[上書き保存](Y/N)" $zfl)-ne "Yes" ) ){ return; }; };
    $global:szFile=$zfl; SC $szFile ($tBox.Text); ssViewColor; dbt("▼File保存▼$szFile");
};
##★背景色 ★FNT寸法 ★WND寸法
function ssViewColor(){ $zcc=($tBox.Lines[0]).replace(" ","").split("@?:");
    for( $ii=0; $ii -lt $zcc.count; $ii++ ){ $cc=$zcc[$ii]; if( $cc.StartsWith("BakColor") ){ $tBox.BackColor=$zcc[$ii+1]; };
        if( $cc.StartsWith("FntSize") ){ $tBox.Font="$szFont,"+$zcc[$ii+1]; }; if( $cc.StartsWith("WndSize") ){ $mMain.Size=$zcc[$ii+1]; };
    };
};
##★文字検索DLG窓
$szSchFont=New-Object System.Drawing.Font("メイリオ",12); $global:szfindPos=0;
$global:szSchForm=New-Object Form -Pro @{ Text="【検索Box】"; Size="520,108"; MaximizeBox =$False; MinimizeBox=$false; AutoSizeMode="GrowAndShrink"; 
    Topmost=$True; StartPosition="CenterScreen"; }; $szSchForm.Add_Closing({ $_.Cancel =$True; $szSchForm.Visible =$false; });
##★入力BOX   ##★釦0  ##★釦1
$global:szSchBox1=New-Object TextBox -Pro @{ Font=$szSchFont; Location="10,2" ; Size="400,16";}; 
function ssSchBtn($pm0,$pm1,$pm2){ $zob=New-Object Button -Pro @{ Text=$pm0; Location=$pm1; Size=$pm2; Font=$szSchFont; }; return $zob; };
    ( $szSchBtn0 =ssSchBtn "【Top】"  "420,2"   "80,30" ).Add_Click({ $aa=ssSchFind(0)}); 
    ( $szSchBtn1 =ssSchBtn "【検索】" "420,34"  "80,30" ).Add_Click({ $aa=ssSchFind(1)}); 
$szSchForm.Controls.AddRange(@($szSchBox1, $szSchBtn0, $szSchBtn1)); $szSchForm.Add_Click({ $tBox.Focus() });
##★検索go  ##0:Top  ##1:継続
function global:ssSchFind($zcmd){ $zcc=$szSchBox1.Text; $global:szSetChaText=$zcc; if($zcmd -eq 0){ $global:szfindPos=0; };
    $zPos =($tBox.Text).indexof($zcc,$szfindPos); if($zPos -ge 0 ){;}else{ $tBox.Focus(); return 1; };
    $tBox.Select($zPos, $zcc.length); $tBox.ScrollToCaret(); $tBox.Focus(); $global:szfindPos=$zPos+1; };
##★MSG表示Call関数   ★DLG窓の生成  ★MSG窓の文字BOX
function MsgBox($cc,$ww){ if($ww-eq $null){$ww="720,400";}; $fmMBox=New-Object Form -Pro @{ Size=$ww;Text="【MSG】" }; 
    $mBox=New-Object TextBox -Pro @{ Font="$szFont,14"; Dock="Fill"; Multiline=$True; AcceptsReturn=$True; ScrollBars=[ScrollBars]::Vertical;};
    $fmMBox.Controls.Add($mBox); $mBox.Text=($cc.replace("`n","`r`n")); $mBox.SelectionStart=0; $fmMBox.Show(); };
##★基本窓表示 
ssTopView($fln); $mMain.ShowDialog();
[wndPshPrg201.ps1]

●コピペ[List2.7.3]   [wndPshTxt201.txt] PSH登録の例
!#   @BakColor:#F0E0C0   @FntSize:13  @WndSize:1080,740

<##Ver1.50--[PSH短文登録処理]------------------------------------------------
##  [&]行をダブルクリック[WC]起動、(右釦:編集/クリップ処理)

##  [&]行:①窓有りPSH起動  [&&]行:②窓無しPSH起動  [&&&]行:③継続PSH起動  [;]行④行連結
##  [TopPage]押下で開始画面へ戻る


&  Dir  C:\              ##★[WC] ①Dir起動

&& mspaint               ##★[WC] ②窓無し:ペイント起動   
&& notepad               ##★[WC]  窓無し:メモ帳起動

&&& mspaint              ##★[WC] ③窓無し:継続起動
&&& dbg "aaaa"           ##★[WC]  dbg関数起動(DLG窓)
&&& dbc "cccc"           ##★[WC]  dbc関数起動(DOS窓)
&&& MsgBox "dddd"        ##★[WC]  MsgBox関数起動(DLG窓)

&  for($ii=0; $ii -lt 10; $ii++ ){ $ii; }; ##★[WC] 1行に複数のCMD実行

&  for($ii=0; $ii -lt 10; $ii++ ){  ##★[WC] ④複数行(4)連結しCMD実行
;    $dd = $ii * 2;
;    "Data = $dd  です";
;  }; 

##★③継続起動の例(Step1~4)
&&&  $global:aaa=10;   ##★[WC] Step1:継続:global変数に代入

&&&  dbg $aaa;         ##★[WC] Step2:継続:dbg表示

&&&  $global:aaa=20;   ##★[WC] Step3:継続:代入変更

&&&  dbg $aaa;         ##★[WC] Step4:継続/複数行:dbg表示/dbc表示
;    $aaa=$aaa+15;
;    dbc $aaa; dbg $aaa; MsgBox "$aaa です";
[wndPshTxt201.txt]

●コピペ[List2.7.4]    [wndPshTxtShort201.txt] PSH短文登録の例
!#   @BakColor:#C0E0C0   @FntSize:13  @WndSize:1080,780 

<##Ver1.000--[PSH短文アプリ例処理アプリ]-----------------------------------------------a
##  [WC]各行をダブルクリック起動(右釦:編集/クリップ処理)

##  [&]①窓有り起動   [&&]②窓無し起動   [&&&]③継続起動(窓無し)   [;]④行連結起動
##  [右釦][TopPage]で開始画面に戻る


##★(1.1)Web表示:よく使うWebカレンダ一覧( [!CMT; url] -> [&& Start url ##CMT] と同じ)
##
![WC]日めくりカレンダ;         "https://www.himekuricalendar.com/"
![WC]今年のりカレンダ;         "https://www.benri.com/calendar/"
![WC]六曜・月齢・旧暦カレンダ; "https://www.ajnet.ne.jp/diary_f/?"
![WC]カレンダ(2050年まで);    "https://www.benri.com/calendar/list.html"

&& Start "https://www.himekuricalendar.com/"  ##★[WC]日めくりカレンダ(上記と同じ)


##★(1.2) [郵便番号]入力⇒住所変換(Net利用)
##
&  while($true){ $zNO=Read-Host "[郵便番号(NNNnnnn)]=";   ##★[WC]
;     if( $zNO -eq "" ){ break; };
;     $zres=Invoke-WebRequest "https://api.zipaddress.net/?zipcode=$zNO";
;     $zobj=ConvertFrom-Json $zres.Content; 
;     Write-Host('住所:' + $zobj.data.fullAddress) -ForegroundColor Cyan;
;  };


##★(1.3) 住所から[郵便番号]の検索 (Net利用)
##
&&  Start "https://www.zip-code.jp/adr.php"  ##★[WC]


##★(2.1) 指定フォルダ(zDir)のList表示
##
&  $zDir="$HOME";       ##★[WC] フォルダ指定のこと(現在Dirは pwd を設定)
;  "[Dir] $zDir"; $zcc=(dir $zDir -name -re); $zcc; 


##★(2.2) 指定フォルダ(zDir)のTree表示
##
&  $zDir=(pwd);         ##★[WC] フォルダ指定のこと(現在Dirは pwd を設定)
;  "[Dir] $zDir"; $zcc=(tree $zDir /f ); $zcc;


##★(2.3) 指定フォルダ(zDir)の容量をLIST表示[*グラフ付き]
##
&   $zDir="$HOME\Desktop";  ##★[WC] フォルダ指定のこと(現在Dirは pwd を設定)
;   "[Dir] $zDir";
;   $zlist =dir $zDir -Directory |%{ [PsCustomObject]@{ "Name"=$_.Name; 
;       "Size"=(dir $_.FullName -File -Recurse |measure -Sum -Property Length).Sum }; };
;   $zmes =$zlist |measure -Max -Min -Property Size;
;   $zlist |%{ [PSCustomObject]@{ "Name"=$_.Name; "Size"=( ([int]$_.Size).ToString("#,#") ).PadLeft(16);
;              "Graph"=("*" * [int]($_.Size/($zmes.Maximum)*10)); }; }; 


##★(3.1) 大きいカレンダ窓の表示
##
&&&  $formMonthCalendar =New-Object Form -Pro @{ Location = "100,50"; Size ="380,500";      ##★[WC]
;        text ="Dlg_DayTimeBox"; StartPosition ="manual"; MaximizeBox =$False; MinimizeBox =$false;
;    }; $formMonthCalendar.Add_Closing({ $_.Cancel =$True; $formMonthCalendar.Visible =$false; });
;    ##
;    $formCalDayTime  =New-Object MonthCalendar -Pro @{ 
;        Location = "5,5"; Size = "350,100"; ##StartPosition = "manual";
;        Font   ="'Meiryo UI', 28"; Visible = $true;  ##$false;
;            ## ForeColor = "192, 0, 192";
;            TrailingForeColor = "192, 192, 0";
;        
;    }; $formMonthCalendar.Controls.Add($formCalDayTime); $formCalDayTime.Show();
;    $formMonthCalendar.Showdialog();


##★(3.2) WakeUP ON LAN(WoL)の送信(6台のPCスリープからWakeUP)
##
&&&  $zPcMac = "                   ##★[WC]
;    94-C6-91-79-EF-F6  ##PC11
;    94-C6-91-79-EF-F7  ##PC12
;    94-C6-91-03-6A-B1  ##PC21
;    94-C6-91-03-6A-B2  ##PC22
;    C8-E2-65-15-C3-C4  ##PC31
;    24-B7-2A-B2-89-AC  ##PC32
;   ";
;   ##
;   $zcc="`n[PC-BIOS Power Management SetUp(WakeUP on LAN)]`n ex) PME:Enb  EPU:Dis`n`n";
;   foreach( $cc0 in $zPcMac.split("`n") ){ $cc0=$cc0.trim(); if($cc0.length -lt 15){ continue; };
;      $cc =(($cc0.split("##"))[0]).trim();
;      $zadr =[byte[]]( $cc-split("[:-]") |%{ [Convert]::ToInt32( $_, 16 ); } );
;      $zcc1 =([byte[]](@(0xff)*6))+$zadr*16; $ztgt =[System.Net.IPAddress]::Broadcast;
;      $zclt =New-Object System.Net.Sockets.UdpClient; $zclt.Connect($ztgt, 2304);
;      $zclt.Send($zcc1, $zcc1.Length) |Out-Null; $zclt.Close();
;      $zcc +="Send magic packet to: $cc0`r`n";
;   }; dbg (">>LAN Power Wake UP<<`n"+$zcc);



##★(3.3) PSH処理の高速化(管理権限で ngen.exeの起動)
##
&&&  $zcc='-noe cd c:\             ##★[WC]
;  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";

[wndPshTxtShort201.txt]

更新状況

新記事登録でgoogle検索不可の状態です。原因不明の全ページgoogleインデックス未登録の状態です。昨年11月から記事が書けずに非常に困っています。 MSNサイトから[コピペgui]で検索利用ください。最新の[コピペ一覧]ページを追加しました。

ブログ検索

QooQ