【作成中】PowerShell のリンクのまとめ
作成中です。PowerShell 運用のリンクのまとめや作業のログです。
PowerShell でのキー入力
ソフトウェアのフォームに「ユーザID」と「パスワード」を入力してログインするスクリプトの書き方。
PowerShellでメッセージボックスを表示する方法。
各種まとめられたリンク集。
PowerShellによるウインドウ操作について
PowerShellでのマウス操作
PowerShell 実行時のセキュリティポリシーの変更
PoserShell のスクリプトを管理者として実行する
PowerShell でGUI Installer の処理
====================
Add-Type -AssemblyName System.Windows.Forms
#Start-Process -FilePath "C:\Users\user\Downloads\rufus-3.17.exe"
Start-Process -FilePath "C:\Users\user\Downloads\MPASetup_Chrome.exe"
Start-Sleep -m 1000
#Add-Type -AssemblyName System.Windows.Forms
#[System.Windows.Forms.SendKeys]::SendWait("%{TAB}")
Start-Sleep -m 1000
[System.Windows.Forms.SendKeys]::SendWait("{TAB}")
Start-Sleep -m 1000
[System.Windows.Forms.SendKeys]::SendWait("{TAB}")
Start-Sleep -m 1000
[System.Windows.Forms.MessageBox]::Show("コンテキスト1","キャプション",[System.Windows.Forms.MessageBoxButtons]::YesNo)
[System.Windows.Forms.SendKeys]::SendWait("{TAB}")
Start-Sleep -m 1000
[System.Windows.Forms.MessageBox]::Show("コンテキスト2","キャプション",[System.Windows.Forms.MessageBoxButtons]::YesNo)
[System.Windows.Forms.SendKeys]::SendWait("{ENTER}")
====================
コマンドを使ったテキストファイルの抜き出し・検索
Unihertz Titan の Android 10 へのアップグレード方法の備忘録
先日、Unihertz Titan のOSを Android 9 から Android 10 にアップグレードしたので、
その方法を備忘録として残しておきます。
作業をされる際には、重要なファイルはバックアップをとり、
時間に余裕を持って行ってください。
工程はすべて、Unihertz Titan にて行います。
まず、アップグレード用のZIPファイルを Google ドライブ からダウンロードします。
Google ドライブのURLは次のとおりです。
開けない場合は、工程の01〜02を行ってください。
01------------------------------------------
Titan で Google ドライブ を開きます。
02------------------------------------------
「ドライブで検索」のところに「Titan」と入力します。
03------------------------------------------
下の画面が表示されます。
この画面の「Important_Notice!!!!.txt」には、アップグレードの方法や注意事項が書かれているので、必ず読むようにしてください。
#===========================================================#
「Important_Notice!!!!.txt」には、ざっくりとは次のようなことが書かれています。
- アップグレードの前に、重要なデータのバックアップをお願いします。
- アップグレードの途中は携帯電話が使用できません。
- もしアップグレード後に不具合が起きた場合、
出力されたログをご提示いただくと問題の解決のお助けができます。 - その他、アップグレードの手順など。
#===========================================================#
04------------------------------------------
アップグレードのために、
ZIPファイルをローカルにダウンロードする必要があります。
Google ドライブ を見ると「EuropeanUnion_EEA_TTEU-01」と
「None_EEA」が選択できます。
ここでは、「None_EEA」を選択します。
#===========================================================#
「EuropeanUnion」→「欧州連合」
「EEA」→「European Economic Area」の略称で、「欧州経済領域」
日本の場合は、「None_EEA」を選択します。
#===========================================================#
05------------------------------------------
「None_EEA」→「Android 10」と進んでいきます。
06------------------------------------------
画面の中にある、「2020121412_g61v71c2k_dfl_tee-ota.zip」を
Titanにダウンロードします。
ファイル容量は 1.7GB ほどあります。
07------------------------------------------
ファイルのダウンロードが完了したら、アップグレードを実施します。
Titan 上で、「ワイヤレスアップデート」画面の右上の3つの点をタップし、
「ローカルアップデート」を選択します。
08------------------------------------------
「2020121412_g61v71c2k_dfl_tee-ota.zip」をダウンロードした
ディレクトリに移動して、ZIPファイルを選択します。
09------------------------------------------
ZIPファイルを選択すると下記の画面が表示されますので、
画面の表示に従ってアップグレードを進めていきます。
アップグレードの最中は、何度か再起動を繰り返します。
私の環境では、20分ほどでOSアップグレードが完了しました。
最後に繰り返しますが、作業の際には必ず大切なファイルはバックアップをとり、
時間に余裕を持ってアップグレードを行ってください。
以上となります。
【改めて】エクセルで「VLOOKUP関数」を使って複数の検索結果を表示できるようにした【書き直し】
前回から記事を書き直しました。
エクセル「VLOOKUP関数」を使って、表から複数の検索結果を引っ張ってこられるようにしました。
検索メニューは、下記のとおりです。
この項目について、エクセルで検索をかけます。
「メロン」、「みかん」、「りんご」、「青森」について、検索をかけてみました。
メロン
みかん
りんご
青森
検索がうまく言っているようです。
前回同様、「VLOOKUP関数」と、「OFFSET関数」を使用しています。
関数は、以下のとおりです。
C列の、5行目から39行目は、以下の関数が入力されています。
C列
=IFERROR(VLOOKUP("*"&$C$2&"*",$C$45:$C$84,1,FALSE),"")
=IFERROR(IF($C$2="","",VLOOKUP("*"&$C$2&"*",OFFSET($C$45:$C$84,E5,0),1,FALSE)),"")
=IFERROR(IF($C$2="","",VLOOKUP("*"&$C$2&"*",OFFSET($C$45:$C$84,E6,0),1,FALSE)),"")
=IFERROR(IF($C$2="","",VLOOKUP("*"&$C$2&"*",OFFSET($C$45:$C$84,E7,0),1,FALSE)),"")
=IFERROR(IF($C$2="","",VLOOKUP("*"&$C$2&"*",OFFSET($C$45:$C$84,E8,0),1,FALSE)),"")
=IFERROR(IF($C$2="","",VLOOKUP("*"&$C$2&"*",OFFSET($C$45:$C$84,E9,0),1,FALSE)),"")
=IFERROR(IF($C$2="","",VLOOKUP("*"&$C$2&"*",OFFSET($C$45:$C$84,E10,0),1,FALSE)),"")
=IFERROR(IF($C$2="","",VLOOKUP("*"&$C$2&"*",OFFSET($C$45:$C$84,E11,0),1,FALSE)),"")
=IFERROR(IF($C$2="","",VLOOKUP("*"&$C$2&"*",OFFSET($C$45:$C$84,E12,0),1,FALSE)),"")
=IFERROR(IF($C$2="","",VLOOKUP("*"&$C$2&"*",OFFSET($C$45:$C$84,E13,0),1,FALSE)),"")
=IFERROR(IF($C$2="","",VLOOKUP("*"&$C$2&"*",OFFSET($C$45:$C$84,E14,0),1,FALSE)),"")
=IFERROR(IF($C$2="","",VLOOKUP("*"&$C$2&"*",OFFSET($C$45:$C$84,E15,0),1,FALSE)),"")
=IFERROR(IF($C$2="","",VLOOKUP("*"&$C$2&"*",OFFSET($C$45:$C$84,E16,0),1,FALSE)),"")
=IFERROR(IF($C$2="","",VLOOKUP("*"&$C$2&"*",OFFSET($C$45:$C$84,E17,0),1,FALSE)),"")
=IFERROR(IF($C$2="","",VLOOKUP("*"&$C$2&"*",OFFSET($C$45:$C$84,E18,0),1,FALSE)),"")
=IFERROR(IF($C$2="","",VLOOKUP("*"&$C$2&"*",OFFSET($C$45:$C$84,E19,0),1,FALSE)),"")
=IFERROR(IF($C$2="","",VLOOKUP("*"&$C$2&"*",OFFSET($C$45:$C$84,E20,0),1,FALSE)),"")
=IFERROR(IF($C$2="","",VLOOKUP("*"&$C$2&"*",OFFSET($C$45:$C$84,E21,0),1,FALSE)),"")
=IFERROR(IF($C$2="","",VLOOKUP("*"&$C$2&"*",OFFSET($C$45:$C$84,E22,0),1,FALSE)),"")
=IFERROR(IF($C$2="","",VLOOKUP("*"&$C$2&"*",OFFSET($C$45:$C$84,E23,0),1,FALSE)),"")
=IFERROR(IF($C$2="","",VLOOKUP("*"&$C$2&"*",OFFSET($C$45:$C$84,E24,0),1,FALSE)),"")
=IFERROR(IF($C$2="","",VLOOKUP("*"&$C$2&"*",OFFSET($C$45:$C$84,E25,0),1,FALSE)),"")
=IFERROR(IF($C$2="","",VLOOKUP("*"&$C$2&"*",OFFSET($C$45:$C$84,E26,0),1,FALSE)),"")
=IFERROR(IF($C$2="","",VLOOKUP("*"&$C$2&"*",OFFSET($C$45:$C$84,E27,0),1,FALSE)),"")
=IFERROR(IF($C$2="","",VLOOKUP("*"&$C$2&"*",OFFSET($C$45:$C$84,E28,0),1,FALSE)),"")
=IFERROR(IF($C$2="","",VLOOKUP("*"&$C$2&"*",OFFSET($C$45:$C$84,E29,0),1,FALSE)),"")
=IFERROR(IF($C$2="","",VLOOKUP("*"&$C$2&"*",OFFSET($C$45:$C$84,E30,0),1,FALSE)),"")
=IFERROR(IF($C$2="","",VLOOKUP("*"&$C$2&"*",OFFSET($C$45:$C$84,E31,0),1,FALSE)),"")
=IFERROR(IF($C$2="","",VLOOKUP("*"&$C$2&"*",OFFSET($C$45:$C$84,E32,0),1,FALSE)),"")
=IFERROR(IF($C$2="","",VLOOKUP("*"&$C$2&"*",OFFSET($C$45:$C$84,E33,0),1,FALSE)),"")
=IFERROR(IF($C$2="","",VLOOKUP("*"&$C$2&"*",OFFSET($C$45:$C$84,E34,0),1,FALSE)),"")
=IFERROR(IF($C$2="","",VLOOKUP("*"&$C$2&"*",OFFSET($C$45:$C$84,E35,0),1,FALSE)),"")
=IFERROR(IF($C$2="","",VLOOKUP("*"&$C$2&"*",OFFSET($C$45:$C$84,E36,0),1,FALSE)),"")
=IFERROR(IF($C$2="","",VLOOKUP("*"&$C$2&"*",OFFSET($C$45:$C$84,E37,0),1,FALSE)),"")
=IFERROR(IF($C$2="","",VLOOKUP("*"&$C$2&"*",OFFSET($C$45:$C$84,E38,0),1,FALSE)),"")
D列の、5行目から39行目は、以下の関数が入力されています。
D列
ヒットした行番号
=IFERROR(MATCH(C5,$C$45:$C$84,0),"")
=IFERROR(MATCH(C6,OFFSET($C$45:$C$72,D5,0),0),"")
=IFERROR(MATCH(C7,OFFSET($C$45:$C$72,E6,0),0),"")
=IFERROR(MATCH(C8,OFFSET($C$45:$C$72,E7,0),0),"")
=IFERROR(MATCH(C9,OFFSET($C$45:$C$72,E8,0),0),"")
=IFERROR(MATCH(C10,OFFSET($C$45:$C$72,E9,0),0),"")
=IFERROR(MATCH(C11,OFFSET($C$45:$C$72,E10,0),0),"")
=IFERROR(MATCH(C12,OFFSET($C$45:$C$72,E11,0),0),"")
=IFERROR(MATCH(C13,OFFSET($C$45:$C$72,E12,0),0),"")
=IFERROR(MATCH(C14,OFFSET($C$45:$C$72,E13,0),0),"")
=IFERROR(MATCH(C15,OFFSET($C$45:$C$72,E14,0),0),"")
=IFERROR(MATCH(C16,OFFSET($C$45:$C$72,E15,0),0),"")
=IFERROR(MATCH(C17,OFFSET($C$45:$C$72,E16,0),0),"")
=IFERROR(MATCH(C18,OFFSET($C$45:$C$72,E17,0),0),"")
=IFERROR(MATCH(C19,OFFSET($C$45:$C$72,E18,0),0),"")
=IFERROR(MATCH(C20,OFFSET($C$45:$C$72,E19,0),0),"")
=IFERROR(MATCH(C21,OFFSET($C$45:$C$72,E20,0),0),"")
=IFERROR(MATCH(C22,OFFSET($C$45:$C$72,E21,0),0),"")
=IFERROR(MATCH(C23,OFFSET($C$45:$C$72,E22,0),0),"")
=IFERROR(MATCH(C24,OFFSET($C$45:$C$72,E23,0),0),"")
=IFERROR(MATCH(C25,OFFSET($C$45:$C$72,E24,0),0),"")
=IFERROR(MATCH(C26,OFFSET($C$45:$C$72,E25,0),0),"")
=IFERROR(MATCH(C27,OFFSET($C$45:$C$72,E26,0),0),"")
=IFERROR(MATCH(C28,OFFSET($C$45:$C$72,E27,0),0),"")
=IFERROR(MATCH(C29,OFFSET($C$45:$C$72,E28,0),0),"")
=IFERROR(MATCH(C30,OFFSET($C$45:$C$72,E29,0),0),"")
=IFERROR(MATCH(C31,OFFSET($C$45:$C$72,E30,0),0),"")
=IFERROR(MATCH(C32,OFFSET($C$45:$C$72,E31,0),0),"")
=IFERROR(MATCH(C33,OFFSET($C$45:$C$72,E32,0),0),"")
=IFERROR(MATCH(C34,OFFSET($C$45:$C$72,E33,0),0),"")
=IFERROR(MATCH(C35,OFFSET($C$45:$C$72,E34,0),0),"")
=IFERROR(MATCH(C36,OFFSET($C$45:$C$72,E35,0),0),"")
=IFERROR(MATCH(C37,OFFSET($C$45:$C$72,E36,0),0),"")
=IFERROR(MATCH(C38,OFFSET($C$45:$C$72,E37,0),0),"")
=IFERROR(MATCH(C39,OFFSET($C$45:$C$72,E38,0),0),"")
E列の、5行目から39行目は、以下の関数が入力されています。
E列
参照番号
=D5
=IF(D6="","",E5+D6)
=IF(D7="","",E6+D7)
=IF(D8="","",E7+D8)
=IF(D9="","",E8+D9)
=IF(D10="","",E9+D10)
=IF(D11="","",E10+D11)
=IF(D12="","",E11+D12)
=IF(D13="","",E12+D13)
=IF(D14="","",E13+D14)
=IF(D15="","",E14+D15)
=IF(D16="","",E15+D16)
=IF(D17="","",E16+D17)
=IF(D18="","",E17+D18)
=IF(D19="","",E18+D19)
=IF(D20="","",E19+D20)
=IF(D21="","",E20+D21)
=IF(D22="","",E21+D22)
=IF(D23="","",E22+D23)
=IF(D24="","",E23+D24)
=IF(D25="","",E24+D25)
=IF(D26="","",E25+D26)
=IF(D27="","",E26+D27)
=IF(D28="","",E27+D28)
=IF(D29="","",E28+D29)
=IF(D30="","",E29+D30)
=IF(D31="","",E30+D31)
=IF(D32="","",E31+D32)
=IF(D33="","",E32+D33)
=IF(D34="","",E33+D34)
=IF(D35="","",E34+D35)
=IF(D36="","",E35+D36)
=IF(D37="","",E36+D37)
=IF(D38="","",E37+D38)
=IF(D39="","",E38+D39)
これで、検索した値を参照できます。
【記事取り消し】エクセルで「VLOOKUP関数」を使って複数の検索結果を表示できるようにした
【記事取り消し】
内容に誤りがありました。
エクセル「VLOOKUP関数」を使って、表から複数の検索結果を引っ張ってこられるようにしました。
「みかん」というワードを検索した結果。
続いて、「りんご」というワードを検索した結果。
また、「ゼリー」というワードを検索した結果。
きちんと結果が引き出せています。
セル内の関数は次のとおりです。
C5のセル内の内容
=IFERROR(VLOOKUP("*"&$C$2&"*",$C$26:$C$35,1,FALSE),"")
C6より下のセルの内容
=IFERROR(IF(D5="","",VLOOKUP("*"&$C$2&"*",OFFSET($C$26:$C$35,D5,0),1,FALSE)),"")
続いてD列の入力ですが、
D5は、
=IFERROR(MATCH(C5,$C$26:$C$36,0),"")
D6は、
=IFERROR(MATCH(C6,$C$26:$C$36,0),"")
となっています。
D列で、検索ワードがヒットした際の行を調べています。
C5でヒットしたワードの行をD5で調べ、
C6では、それより下にあるワードを調べています。
「OFFSET関数」は、参照する範囲をずらすことができるので、
このような方法を取ることができました。
備忘録
flash.cs
using System;
using System.Runtime.InteropServices;
using System.Text;
public static class Program
{
private delegate bool EnumWindowsDelegate( IntPtr hWnd, IntPtr lparam );
[DllImport( "user32.dll" )]
static extern Int32 FlashWindowEx( ref FLASHWINFO pwfi );
[DllImport( "user32.dll" )]
[return: MarshalAs( UnmanagedType.Bool )]
private extern static bool EnumWindows( EnumWindowsDelegate lpEnumFunc, IntPtr lparam );
[DllImport( "user32.dll", CharSet = CharSet.Auto, SetLastError = true )]
private static extern int GetClassName( IntPtr hWnd, StringBuilder lpClassName, int nMaxCount );
[StructLayout( LayoutKind.Sequential )]
public struct FLASHWINFO
{
public UInt32 cbSize ; // FLASHWINFO構造体のサイズ
public IntPtr hwnd ; // 点滅対象のウィンドウ・ハンドル
public UInt32 dwFlags ; // 以下の「FLASHW_XXX」のいずれか
public UInt32 uCount ; // 点滅する回数
public UInt32 dwTimeout; // 点滅する間隔(ミリ秒単位)
}
//public const UInt32 FLASHW_STOP = 0 ; // 点滅を止める
//public const UInt32 FLASHW_CAPTION = 1 ; // タイトルバーを点滅させる
//public const UInt32 FLASHW_TRAY = 2 ; // タスクバー・ボタンを点滅させる
//public const UInt32 FLASHW_ALL = 3 ; // タスクバー・ボタンとタイトルバーを点滅させる
//public const UInt32 FLASHW_TIMER = 4 ; // FLASHW_STOPが指定されるまでずっと点滅させる
public const UInt32 FLASHW_TIMERNOFG = 12; // ウィンドウが最前面に来るまでずっと点滅させる
private static string m_searchClassName;
private static IntPtr m_hWnd;
private static void Main()
{
m_searchClassName = "Unity";
EnumWindows( new EnumWindowsDelegate( EnumWindowCallBack ), IntPtr.Zero );
var fInfo = new FLASHWINFO();
fInfo.cbSize = Convert.ToUInt32( Marshal.SizeOf( fInfo ) );
fInfo.hwnd = m_hWnd;
fInfo.dwFlags = FLASHW_TIMERNOFG;
fInfo.uCount = 12;
fInfo.dwTimeout = 12;
FlashWindowEx( ref fInfo );
}
private static bool EnumWindowCallBack( IntPtr hWnd, IntPtr lparam )
{
var csb = new StringBuilder( 256 );
GetClassName( hWnd, csb, csb.Capacity );
if ( !csb.ToString().Contains( m_searchClassName ) ) return true;
m_hWnd = hWnd;
return true;
}
}
============================================
csc.exe /target:library flash.cs
============================================
language-and-engineering.hatenablog.jp
https://www.php.net/manual/ja/function.dl.php
.NET Framework 4.8
2019年4月18日に正式リリースされた。[20]
rpm --import https://packages.microsoft.com/keys/microsoft.asc
sh -c 'echo -e "[packages-microsoft-com-prod]\nname=packages-microsoft-com-prod \nbaseurl=https://packages.microsoft.com/yumrepos/microsoft-rhel7.3-prod\nenabled=1\ngpgcheck=1\ngpgkey=https://packages.microsoft.com/keys/microsoft.asc" > /etc/yum.repos.d/dotnetdev.repo'
yum update
yum install libunwind libicu
yum install dotnet-sdk-2.0.0
※export PATH=$PATH:$HOME/dotnet
dotnet --version
dotnet new console -o myApp
cd myApp
dotnet new nuget
vim nuget.config
[root@localhost myApp]# dotnet publish -r linux-x64 -c Release
.NET Core 向け Microsoft (R) Build Engine バージョン 15.3.409.57025
Copyright (C) Microsoft Corporation.All rights reserved.
myApp -> /var/www/html/myApp/bin/Release/netcoreapp2.0/linux-x64/myApp.dll
/root/.nuget/packages/microsoft.dotnet.ilcompiler/1.0.0-alpha-27527-01/build/Microsoft.NETCore.Native.Unix.props(103,5): error : Platform linker ('clang-3.9') not found. Try installing clang-3.9 or the appropriate package for your platform to resolve the problem. [/var/www/html/myApp/myApp.csproj]
[root@localhost myApp]#
[root@localhost linux-x64]# pwd
/var/www/html/myApp/bin/Release/netcoreapp2.0/linux-x64
[root@localhost linux-x64]#
[root@localhost linux-x64]# myApp.dll
bash: myApp.dll: コマンドが見つかりません
[root@localhost linux-x64]# dotnet myApp.dll
Hello World!
[root@localhost linux-x64]#
[root@localhost linux-x64]#