Upgrade to Pro — share decks privately, control downloads, hide ads and more …

PowerShell 紹介

Avatar for tsuda.a tsuda.a
January 11, 2015
27

PowerShell 紹介

LT駆動開発 #10 で発表した、簡単な PowerShell の紹介です。

Avatar for tsuda.a

tsuda.a

January 11, 2015
Tweet

Transcript

  1. PowerShell とは • Microsoft の Shell Script のようなもの • コマンドプロンプトの後継

    (WSH/VBScript の後継) • Windows 7 以降は標準搭載。 • 専用エディタもついてくるよ! PowerShell ISE (Integrated Scripting Environment)
  2. 例 $tcp = New-Object System.Net.Sockets.TcpClient try { $tcp.Connect("localhost", 445) Write-Host

    ("成功") } catch { Write-Host ("失敗") } finally { $tcp.Close() $tcp.Dispose() } 対象の host の TCP ポートを 開いてみる Script .net の ライブラリ
  3. ちまたで言われている利点 • pipe に Object を渡せる • コマンドプロンプト (cmd.exe) とは比較にならない制御が可能

    (= 一般的な言語ができることができる) • コマンドプロンプトの後継。 • Azure API などが操作できる。 • Windows Server では一部 PowerShell Script に変換する機能が ある(らしい)
  4. 例) object が pipe を渡っているの図 Get-Content .¥sample.csv | ConvertFrom-Csv -Header

    @(1..50) | Where {$_."3" -ge 1989} | select "1","2","16","26","30" | Out-GridView sample.csv を読み込み、 csv ファイルとして解釈し 3列目が 1989 以上の行の 1列目,2列目,16列目,26列目,30列目を GridView で表示する
  5. 参考) FORTRAN 77 の場合 00010 I = 100 00020 IF

    (I .GT. 1) THEN 00030 PRINT *, "True" 00040 END IF 00050 END
  6. 質問2) PowerShell で Excel は操作できるのか? • できないことはないけれど、Powershell で実施することによる メリットはあまりないよ。何より遅い(汗 powershell

    # Excelの起動ほか $excel = New-Object -ComObject Excel.Application $excel.Visible = $false $book = $excel.Workbooks.Open("D:¥sample.xlsx") $sheet = $book.Worksheets.Item("sheet1") # 書き込み $sheet.Range("A1").Cells.Item(1, 1) = "AAA" # 読み込み $a = $sheet.Range("A1").Cells.Item(1, 1).Text Write-Host $a # 閉じる $book.Save() $excel.Quit() # Excel.exe がプロセスに残るのを防ぐために Powershell ごと終了する(ぉぃ exit