POWERSHELLパワーシェル関数

本ページには広告が含まれています。

PowerShellを実行します。

構文
  1. UString = POWERSHELL( コマンド, 同期フラグ, 画面表示 )
引数
コマンド (String)必須
POWERSHELLのコマンド
同期フラグ (Boolean = False)省略可
FALSE
終了を待つ (デフォルト)
TRUE
待たずに戻る
画面表示 (Boolean = False)省略可
FALSE
POWERSHELL画面を表示しない (デフォルト)
TRUE
表示する
2
最小化状態で起動する
戻り値
標準出力を返す(同期フラグがTrue、もしくは画面表示がTrue,2の場合は返しません)

使い方

コマンドを実行し返された結果を出力

PowerShellで(Get-Date).DateTimeのコマンドを実行し、返された結果を出力します。以下のコマンドは今日の日付を出力します。

UWSC
PRINT POWERSHELL("(Get-Date).DateTime")

同期フラグ

POWERSHELL関数はオーバーヘッドでPowerShellの起動が遅いので、戻り値がないものや処理の終了を待機する必要のないときは、同期フラグTrueを指定します。

また画面表示Trueを指定しておくとPowerShellの処理中はウィンドウが表示されるので、このウィンドウの有無で処理が完了したかの確認に使うことができます。

以下はcmdに指定されたコマンドを実行するプログラムです。同期フラグTrueを指定しているので完了前に処理は進みますがGETID関数でPowerShellウィンドウの有無を調べ、処理画面が表示されている間は待機するプログラムです。

UWSC
POWERSHELL(cmd, TRUE, TRUE)

REPEAT
	SLEEP(0.001)
UNTIL GETID("Windows PowerShell", "ConsoleWindowClass") = -1

同期フラグTrueを指定すると処理の終了を待たずに次に進むため、オーバーヘッドでの待ち時間を他の処理に回すことができます。このプログラムの場合、POWERSHELL関数の直後に他の処理を記述します。

ただし同期フラグ画面表示をデフォルト以外に指定すると戻り値の取得ができないため、戻り値が必要な処理ではこの方法は使えません。

実行結果をテキストファイルに出力

POWERSHELL関数での結果をテキストファイルに出力するにはOut-Fileコマンドを使い、以下のように記述します。commandに実行したいコマンドを指定します。

UWSC
POWERSHELL("command | Out-File path")

以下は実行中のプロセス一覧をD:\Desktop\プロセス一覧.txtに出力する例です。

UWSC
PRINT POWERSHELL("Get-Process | Out-File D:\Desktop\プロセス一覧.txt")

POWERSHELL関数の実行結果をテキストファイルに出力し、メモ帳で開く場合は以下のように記述します。

UWSC
DIM path = "D:\Desktop\プロセス一覧.txt"

POWERSHELL("Get-Process | Out-File " + path)
EXEC("notepad " + path)

複数のコマンドを1行で書く

command1に続けてcommand2を実行したいときは、コマンドを;(セミコロン)で繋げます。

UWSC
POWERSHELL("command1; command2")

command1の処理結果をcommand2に渡すには|(パイプライン)を使います。

UWSC
POWERSHELL("command1 | command2")

プログラム実行例

ファイルの作成日時・更新日時・アクセス日時を書き換える

UWSC
DIM FSO = CREATEOLEOBJ("Scripting.FileSystemObject")

DIM path = "D:\Documents\sample.txt"
DIM folderspec = FSO.GetParentFolderName(path)
DIM filename = FSO.GetFileName(path)
DIM CreationTime = "2022/07/01 00:00:00"      // 作成日時
DIM LastWriteTime = "2022/07/01 00:00:00"     // 更新日時
DIM LastAccessTime = "2022/07/01 00:00:00"    // アクセス日時

PRINT POWERSHELL("pushd <#DBL>" + folderspec + "<#DBL>;" + _
                    "Set-ItemProperty " + filename + " -name CreationTime -value  <#DBL>" + CreationTime + "<#DBL>;" + _
                    "Set-ItemProperty " + filename + " -name LastWriteTime -value  <#DBL>" + LastWriteTime + "<#DBL>;" + _
                    "Set-ItemProperty " + filename + " -name LastAccessTime -value  <#DBL>" + LastAccessTime + "<#DBL>;" + _
)
使用関数

PCをシャットダウンする(PowerShell)

PowerShellのStop-ComputerコマンドでPCのシャットダウンを行います。

UWSC
POWERSHELL("Stop-Computer -Force")
使用関数
解説

PCを再起動する(PowerShell)

PowerShellのRestart-Computer コマンドでPCの再起動を行います。

UWSC
POWERSHELL("Restart-Computer -Force")
使用関数
解説

システムの起動時間を取得

システムの起動時間をyyyy年m月d日 h:n:sの形式で取得します。

UWSC
PRINT TRIM(POWERSHELL("[Management.ManagementDateTimeConverter]::ToDateTime((Get-WmiObject Win32_OperatingSystem).LastBootUpTime)"))
結果
プレーンテキスト
2019年12月21日 15:53:56
使用関数

IEオブジェクト(COMオブジェクト)のメンバー一覧を取得する

UWSC
PRINT POWERSHELL("$ie = New-Object -ComObject InternetExplorer.Application;Get-Member -InputObject $ie")
結果
プレーンテキスト


   TypeName: System.__ComObject#{d30c1661-cdaf-11d0-8a3e-00c04fc9e26e}

Name                 MemberType Definition                                                  
----                 ---------- ----------                                                  
ClientToWindow       Method     void ClientToWindow (int, int)                              
ExecWB               Method     void ExecWB (OLECMDID, OLECMDEXECOPT, Variant, Variant)     
GetProperty          Method     Variant GetProperty (string)                                
GoBack               Method     void GoBack ()                                              
GoForward            Method     void GoForward ()                                           
GoHome               Method     void GoHome ()                                              
GoSearch             Method     void GoSearch ()                                            
Navigate             Method     void Navigate (string, Variant, Variant, Variant, Variant)  
Navigate2            Method     void Navigate2 (Variant, Variant, Variant, Variant, Variant)
PutProperty          Method     void PutProperty (string, Variant)                          
QueryStatusWB        Method     OLECMDF QueryStatusWB (OLECMDID)                            
Quit                 Method     void Quit ()                                                
Refresh              Method     void Refresh ()                                             
Refresh2             Method     void Refresh2 (Variant)                                     
ShowBrowserBar       Method     void ShowBrowserBar (Variant, Variant, Variant)             
Stop                 Method     void Stop ()                                                
AddressBar           Property   bool AddressBar () {get} {set}                              
Application          Property   IDispatch Application () {get}                              
Busy                 Property   bool Busy () {get}                                          
Container            Property   IDispatch Container () {get}                                
Document             Property   IDispatch Document () {get}                                 
FullName             Property   string FullName () {get}                                    
FullScreen           Property   bool FullScreen () {get} {set}                              
Height               Property   int Height () {get} {set}                                   
HWND                 Property   int HWND () {get}                                           
Left                 Property   int Left () {get} {set}                                     
LocationName         Property   string LocationName () {get}                                
LocationURL          Property   string LocationURL () {get}                                 
MenuBar              Property   bool MenuBar () {get} {set}                                 
Name                 Property   string Name () {get}                                        
Offline              Property   bool Offline () {get} {set}                                 
Parent               Property   IDispatch Parent () {get}                                   
Path                 Property   string Path () {get}                                        
ReadyState           Property   tagREADYSTATE ReadyState () {get}                           
RegisterAsBrowser    Property   bool RegisterAsBrowser () {get} {set}                       
RegisterAsDropTarget Property   bool RegisterAsDropTarget () {get} {set}                    
Resizable            Property   bool Resizable () {get} {set}                               
Silent               Property   bool Silent () {get} {set}                                  
StatusBar            Property   bool StatusBar () {get} {set}                               
StatusText           Property   string StatusText () {get} {set}                            
TheaterMode          Property   bool TheaterMode () {get} {set}                             
ToolBar              Property   int ToolBar () {get} {set}                                  
Top                  Property   int Top () {get} {set}                                      
TopLevelContainer    Property   bool TopLevelContainer () {get}                             
Type                 Property   string Type () {get}                                        
Visible              Property   bool Visible () {get} {set}                                 
Width                Property   int Width () {get} {set}
使用関数

Shellオブジェクト(COMオブジェクト)のメンバー一覧を取得する

UWSC
PRINT POWERSHELL("$shell = New-Object -ComObject Shell.Application;Get-Member -InputObject $shell")
結果
プレーンテキスト


   TypeName: System.__ComObject#{286e6f1b-7113-4355-9562-96b7e9d64c54}

Name                 MemberType Definition                                                    
----                 ---------- ----------                                                    
AddToRecent          Method     void AddToRecent (Variant, string)                            
BrowseForFolder      Method     Folder BrowseForFolder (int, string, int, Variant)            
CanStartStopService  Method     Variant CanStartStopService (string)                          
CascadeWindows       Method     void CascadeWindows ()                                        
ControlPanelItem     Method     void ControlPanelItem (string)                                
EjectPC              Method     void EjectPC ()                                               
Explore              Method     void Explore (Variant)                                        
ExplorerPolicy       Method     Variant ExplorerPolicy (string)                               
FileRun              Method     void FileRun ()                                               
FindComputer         Method     void FindComputer ()                                          
FindFiles            Method     void FindFiles ()                                             
FindPrinter          Method     void FindPrinter (string, string, string)                     
GetSetting           Method     bool GetSetting (int)                                         
GetSystemInformation Method     Variant GetSystemInformation (string)                         
Help                 Method     void Help ()                                                  
IsRestricted         Method     int IsRestricted (string, string)                             
IsServiceRunning     Method     Variant IsServiceRunning (string)                             
MinimizeAll          Method     void MinimizeAll ()                                           
NameSpace            Method     Folder NameSpace (Variant)                                    
Open                 Method     void Open (Variant)                                           
RefreshMenu          Method     void RefreshMenu ()                                           
SearchCommand        Method     void SearchCommand ()                                         
ServiceStart         Method     Variant ServiceStart (string, Variant)                        
ServiceStop          Method     Variant ServiceStop (string, Variant)                         
SetTime              Method     void SetTime ()                                               
ShellExecute         Method     void ShellExecute (string, Variant, Variant, Variant, Variant)
ShowBrowserBar       Method     Variant ShowBrowserBar (string, Variant)                      
ShutdownWindows      Method     void ShutdownWindows ()                                       
Suspend              Method     void Suspend ()                                               
TileHorizontally     Method     void TileHorizontally ()                                      
TileVertically       Method     void TileVertically ()                                        
ToggleDesktop        Method     void ToggleDesktop ()                                         
TrayProperties       Method     void TrayProperties ()                                        
UndoMinimizeALL      Method     void UndoMinimizeALL ()                                       
Windows              Method     IDispatch Windows ()                                          
WindowsSecurity      Method     void WindowsSecurity ()                                       
WindowSwitcher       Method     void WindowSwitcher ()                                        
Application          Property   IDispatch Application () {get}                                
Parent               Property   IDispatch Parent () {get}
使用関数

参考文献

  1. コマンドプロンプトやPowerShellで複数のコマンドを1行で連続実行する方法 - 4thsight.xyz

関連記事

DOSCMD関数 (スクリプト関数)
DOSCMD関数は、コマンドライン(コマンドプロンプト)を実行する関数です。第一引数に指定したコマンドを実行します。標準出力を戻値として返しますが、同期フラグもしくは画面出力がTrueの場合は戻値はありません。
POFF関数 (スクリプト関数)
POFFは、電源を制御する関数です。第一引数に指定したコマンドを実行します。コマンドには、電源断・ログオフ・リブート・サスペンド(休止状態)・サスペンド2(スタンバイ)・モニターOFF(省電力モード)・モニターOFF(電源断)・モニターON・スクリーンセーバ起動・UWSCの再起動があります。
FolderItem.InvokeVerb メソッド (Shell)
ファイルやフォルダを右クリックしたときに表示されるメニューのコマンドを実行します。