Powershell
ナビゲーションに移動
検索に移動
Powershell
引数
- https://microsoftou.com/ps-arguments/
- $Args[]に格納
- Param($hoge1,$hoge2) とすることで、指定した変数に設定可
ファイル作成
New-Item c:\temp\myfile.txt -type file
echo
- Write-Outputのエイリアス
ファイル書き出し
# バッククオテーションでエスケープ $str = "`"abc`"" Write-Host $str # ヒアドキュメントの場合はエスケープ不要 $str = @" ヒアドキュメントの場合は " はそのまま 記述できます。 "@
コマンドレット
- get-command
- get-help get-command
- get-command | select-string "select"
コマンドレット | 内容 |
---|---|
Add-History | |
Clear-Content | |
Compare-Object | |
Convert-Path | |
ConvertTo-Html | |
Copy-Item | |
Export-Alias | |
Export-Clixml | |
Export-Csv | |
Foreach-Object | |
Format-List | |
Format-Wide | |
Get-Acl | |
Get-Alias | |
Get-AuthenticodeSignature | |
Get-ChildItem | |
Get-Command | |
Get-Content | |
Get-Culture | |
Get-Date | |
Get-Eventlog | |
Get-ExecutionPolicy | |
Get-Help | |
Get-History | |
Get-Host | |
Get-Item | |
Get-ItemProperty | |
Get-Location | |
Get-Member | |
Get-Process | |
Get-PSDrive | |
Get-PSProvider | |
Get-Service | |
Get-Unique | |
Get-WMiObject | |
Group-Object | |
Import-Alias | |
Import-Clixml | |
Import-Csv | |
Invoke-Expression | |
Invoke-History | |
Invoke-Item | |
Measure-Command | |
Measure-Object | |
Move-Item | |
New-Alias | |
New-Item | |
New-PSDrive | |
New-Timespan | |
Out-File | |
Out-Host | |
Output-Printer | |
Read-Host | |
Remove-Item | |
Remove-PSDrive | |
Rename-Item | |
Restart-Service | |
Resume-Service | |
Select-Object | |
Select-String | |
Set-Alias | |
Set-Content | |
Set-Date | |
Set-ExecutionPolicy | |
Set-Location | |
Set-Service | |
Sort-Object | |
Start-Service | |
Start-Sleep | |
Stop-Process | |
Stop-Service | |
Suspend-Service | |
Tee-Object | |
Test-Path | |
Where-Object | 返されるデータのフィルタ処理 |
Write-Host | |
Write-Warning |
Get-Command
- すべての Windows PowerShell コマンドレットの一覧を返す
Get-Help
- PowerShell には、コマンド ヘルプと概念に関するヘルプの 2 種類のヘルプがある
使用できるすべてのヘルプ トピック一覧を取得
Get-Help *
トピック名を Get-Help に渡すことで特定のトピックに関するヘルプを取得できる
Get-Help Get-Member | more
Select-String
- 文字列値の存在確認
- エイリアス sls
<blockquote>grepの代替として</blockquote>
- grep で使えるようにしておく
Set-Alias grep Select-String
Get-Alias
- Windows PowerShell エイリアスのリストを返す
- エイリアス gal
書式
- 特定のオブジェクトについて、表示するプロパティを制御するための一連のコマンドレットが用意されています
- これらすべてのコマンドレットの名前は、Format という動詞で始まります
- Format 系のコマンドレットには、Format-Wide、Format-List、Format-Table、および Format-Custom があります
Format-Wide
- オブジェクトの既定のプロパティだけが表示されます
PS> Get-Process -Name powershell | Format-Wide
Format-List
- リスト形式で表示されます。各プロパティがその名前と共に別々の行に表示されます
PS> Get-Process -Name powershell | Format-List
Format-Table
PS> Get-Process -Name powershell | Format-Table -Property Path,Name,Id,Company
コマンドサンプル
- 「 Linux ならできるのに、だから Windows は...」「それ PowerShell でできるよ」
- grepコマンドとPowerShellのsls (Select-String)の比較
- Windows PowerShell でのパイプ処理とパイプライン
- PowerShellのGet-ChildItemコマンドレットでファイル名の一覧を取得する(基本編)
フォルダ配下のファイル名の検索
> get-childitem | where-object {$_.name -like "Python*"}
Powershell ISE
Windows8
- Windows 8 のデフォルト設定では PowerShell ISE がスタート画面に表示されません。また、アプリの検索を行っても出てきません。
- 「PowerShell ISE」には、補完、デバッグ機能などの便利な機能が付いている
- 「ファイル名を指定して実行」で、「powershell_ise」を起動する。
Linuxコマンド
Linuxコマンド | Powershellコマンド |
---|---|
env | Get-ChildItem Env: |
grep | Select-String |
ls | Get-ChildItem |
man | Get-Help |
rm -rf | Remove-Item -Path -Recurse -Force |
Tips
スクリプトファイルを実行する
- http://www.atmarkit.co.jp/ait/articles/0709/20/news125.html
- PowerShellはカレント・フォルダを検索しない
PS > ./hoge.ps1
スクリプト実行ポリシーを設定
- 以下のエラーが発生する
<blockquote>このシステムではスクリプトの実行が無効になっているため...</blockquote>
PS > Set-ExecutionPolicy RemoteSigned
ポリシー | 内容 |
---|---|
Restricted | すべてのスクリプトを実行不可 |
AllSigned | すべてのスクリプトに証明書を要求 |
RemoteSigned | インターネット経由でダウンロードしたスクリプトのみ証明書を要求 |
Unrestricted | すべてのスクリプト実行を許可(ただしインターネット経由でダウンロードしたコードは実行確認のみあり) |
環境変数
一覧表示
PS> get-childitem env:
指定表示
$Env:環境変数名
例
PS> $env:path
設定
PS> set-item env:HOGE hoge
文字列分割
- 環境変数を ";"で分割
PS> $Env:path -split ";"
バックグラウンドジョブの実行と確認
- Start-Job、Get-Job
Start-Job -ScriptBlock{ 実行するコマンド }
例
PS C:\Programs\wildfly-8.0.0.Final\bin> start-job -ScriptBlock {.\standalone.bat} Id Name PSJobTypeName State HasMoreData Location Command -- ---- ------------- ----- ----------- -------- ------- 2 Job2 BackgroundJob Running True localhost .\standalone.bat PS C:\Programs\wildfly-8.0.0.Final\bin> get-job Id Name PSJobTypeName State HasMoreData Location Command -- ---- ------------- ----- ----------- -------- ------- 2 Job2 BackgroundJob Failed False localhost .\standalone.bat
カレントディレクトリをエクスプローラーで開く
> explorer (get-location).path
コマンド情報の確認(whereis)
PS C:\workspaces\vscode\reactlesson> get-command git CommandType Name Version Source ----------- ---- ------- ------ Application git.exe 2.12.2.2 C:\Program Files\Git\cmd\git.exe
フォルダのサイズを調べる
$fso = new-object -com Scripting.FileSystemObject gci "c:\windows\" -Directory ` | select @{l='Size'; e={$fso.GetFolder($_.FullName).Size}},FullName ` | sort Size -Descending ` | ft @{l='Size [MB]'; e={'{0:N2} ' -f ($_.Size / 1MB)}},FullName
© 2006 矢木浩人