PowerShell
拡張子:「.ps1」
コメント: # 一行単位のコメントです。
<#
複数行で記述する
コメント表記です。
#>
大文字と小文字について:
PowerShellでは文法上、大文字小文字を区別しません。
「Write-Host」と「write-host」は同じコマンドレットと判断されます。
複数行の記述:
コマンドが長すぎて複数行に渡る場合は、行の終了で「バッククォート(`)」を記述することで、複数行に記述することが可能です。
Write-Host("USAGE: " + $MyInvocation.MyCommand.Name + `
" arg1 arg2")
一行にまとめて記述する場合には「;」を用います。
Write-Host("hello"); Write-Output("world")
Excel 起動とワークブックを開く:
# Excel起動
$Excel = New-Object -ComObject Excel.Application
$Excel.Visible = $True
# ワークブックを開く
$XlsxPath = "C:\temp\Test.xlsx"
$Workbook = $Excel.Workbooks.Open($XlsxPath)
e.g. Sample.ps1(right click - clich "Edit")
Opened "Sample.ps1" on Windows PowerShell ISE
PowerShellをbatファイルから実行する
test1.bat
@echo off
REM パワーシェルを呼び出すバッチファイルです。
REM test.ps1 が test.bat と同じフォルダにある場合です。
echo 〇〇〇をしています…
powershell -NoProfile -ExecutionPolicy Unrestricted .\test1.ps1 first second third
REM 実行結果を見るために一時停止させます。
PAUSE
test1.ps1
# バッチファイルから呼び出される側のパワーシェルファイルです。
Write-Host ('渡された引数1個目:' + $Args[0])
Write-Host ('渡された引数2個目:' + $Args[1])
Write-Host ('渡された引数3個目:' + $Args[2])
test1.bat の実行結果は次の通りです。
渡された引数1個目:first
渡された引数2個目:second
渡された引数3個目:third
test2.bat
@echo off
REM パワーシェルを呼び出すバッチファイルです。
REM test2.ps1 が test2.bat と同じフォルダにある場合です。
echo 〇〇〇をしています…
powershell -NoProfile -ExecutionPolicy Unrestricted .\test2.ps1 -age 30 -last_name 田中 -first_name 太郎
REM 実行結果を見るために一時停止させます。
PAUSE
test2.ps1
# バッチファイルから呼び出される側のパワーシェルファイルです。
Param(
[string]$first_name
, [string]$last_name
, [int]$age
)
Write-Host ('名前:' + $last_name + ' ' + $first_name)
Write-Host ('年齢:' + $age)
test2.bat の実行結果は次の通りです。
名前:田中 太郎
年齢:30
Reference
PowerShellスクリプトの作成と実行 CapmNetwork
PowerShell で Excel をどうのこうのすることに興味を持ってくれると嬉しい - Qiita
PowerShell ドキュメント - PowerShell | Microsoft Docs