【文字コード変換】
■変換して上書き
powershell "get-content C:\wk\abc_utf16.txt -encoding Unicode|set-content C:\wk\abc_utf8.txt -encoding UTF8"
■変換して追記
powershell "get-content C:\wk\abc_utf16.txt -encoding Unicode|add-content C:\wk\abc_utf8.txt -encoding UTF8"
【powershellバージョン確認】
$PSVersionTable
出力例)
Name Value
---- -----
CLRVersion 2.0.50727.5477
BuildVersion 6.1.7601.17514
PSVersion 2.0 ⇒コレがPowerShellのバージョン。
WSManStackVersion 2.0
PSCompatibleVersions {1.0, 2.0}
SerializationVersion 1.1.0.1
PSRemotingProtocolVersion 2.1
【Powershellにbatから引数を渡す】
test.bat内
powershell .\test.ps1 "abc" "def" "ghi"
test.ps1内
$arg0 = $Args[0]
$arg1 = $Args[1]
$arg2 = $Args[2]
⇒3つの変数に引数をセットしている。
【Powershellの戻り値を呼出元バッチの変数に格納】
■test.bat
REM 権限変更(実行可)
powershell Set-ExecutionPolicy RemoteSigned
REM PowerShellスクリプト実行
FOR /F "usebackq" %%a IN (`powershell .\test.ps1 -5`) DO @SET FROM_DATE=%%a
REM FROM_DATE変数に戻り値が格納されている
ECHO %FROM_DATE%
REM 権限変更(実行不可)
powershell Set-ExecutionPolicy Restricted
■test.ps1
$date = (Get-Date).AddDays($Args[0])
return $date
■実行結果
実行時日付-5日前の日付が標準出力される。