Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
PowerShell 紹介
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
tsuda.a
January 11, 2015
0
32
PowerShell 紹介
LT駆動開発 #10 で発表した、簡単な PowerShell の紹介です。
tsuda.a
January 11, 2015
Tweet
Share
More Decks by tsuda.a
See All by tsuda.a
マジカルインクリメントと指数表記
tsudaahr
0
220
バックアップしていますか?
tsudaahr
0
130
RDB以前のファイル設計の話でもしようか(ぇ
tsudaahr
0
140
NPUわからん
tsudaahr
0
190
計算量オーダーの話
tsudaahr
1
420
クラウド初学者が抱える不安について
tsudaahr
0
300
キューとは何か
tsudaahr
0
260
等幅は死んだ(ぇ
tsudaahr
0
110
いくら眺めてもエラーの理由がわからないコードについて
tsudaahr
0
200
Featured
See All Featured
XXLCSS - How to scale CSS and keep your sanity
sugarenia
249
1.3M
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2k
A Tale of Four Properties
chriscoyier
162
24k
Site-Speed That Sticks
csswizardry
13
1.1k
How to optimise 3,500 product descriptions for ecommerce in one day using ChatGPT
katarinadahlin
PRO
0
3.4k
We Analyzed 250 Million AI Search Results: Here's What I Found
joshbly
1
730
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
55k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.4k
Breaking role norms: Why Content Design is so much more than writing copy - Taylor Woolridge
uxyall
0
170
Imperfection Machines: The Place of Print at Facebook
scottboms
269
14k
AI: The stuff that nobody shows you
jnunemaker
PRO
2
260
The browser strikes back
jonoalderson
0
390
Transcript
PowerShell 紹介 LTDD #10 @tsuda_ahr
PowerShell とは • Microsoft の Shell Script のようなもの • コマンドプロンプトの後継
(WSH/VBScript の後継) • Windows 7 以降は標準搭載。 • 専用エディタもついてくるよ! PowerShell ISE (Integrated Scripting Environment)
利点 • .net のライブラリが Script のように使えること。
個人的にはこれ一択!
例 $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 の ライブラリ
ちまたで言われている利点 • pipe に Object を渡せる • コマンドプロンプト (cmd.exe) とは比較にならない制御が可能
(= 一般的な言語ができることができる) • コマンドプロンプトの後継。 • Azure API などが操作できる。 • Windows Server では一部 PowerShell Script に変換する機能が ある(らしい)
例) 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 で表示する
残念な点
1.拡張子とインストールフォルダ
最新のPSのバージョンは現在 “4” 順調に進化しています
しかし拡張子は.ps1のまま
インストールフォルダも v1.0 のまま
2.関係演算子
PERL の場合 $a = 100; if ($a > 1) {
print "True"; }
PowerShell の場合 $a = 100; if ($a –gt 1) {
Write-Host "True"; }
FORTRAN かよ!
参考) FORTRAN 77 の場合 00010 I = 100 00020 IF
(I .GT. 1) THEN 00030 PRINT *, "True" 00040 END IF 00050 END
3.セキュリティ縛り ポリシーがデフォルトのままだと、 Scriptファイル(.ps1) を実行できません
4.コマンドプロンプトに劣る面がある 屈辱の cmd /c mklink たとえば シンボリックリンクを 作るコマンドレットは存在しない。
5.Windows の設定は、変わらず難儀 たとえば、 ここのチェックを入れるための API とかは存在しない
6.コマンドが長い
まとめ • Windows の設定がらみのところでは、まだまだコマンドプロン プト有利なところが結構ある。 • 自前 Script を書く場合は、PowerShell になれるとコマンドプ
ロンプトには戻れない。 • テキスト処理とかも PERL を使ったりすることはなくなった。
みんな PowerShell を使おう!
セッション中にあった質問と回答
質問1) pipe で渡ったオブジェクトの型はわかるのか? 一応わかりますが、パターンマッチとはまではできません(多分)
質問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
質問3) あるフォルダにファイルができたことをトリガーに処 理することができるか? できないことはないです… (実現にはやはり .net のライブラリの力を借ります。 また以下のコードだと複数のファイルが同時に操作された場合に取りこぼします) $watcher =
New-Object System.IO.FileSystemWatcher $watcher.Path = "D:¥test" while ($true) { $result = $watcher.WaitForChanged([System.IO.WatcherChangeTypes]::All) Write-Host $result.ChangeType $result.Name }
ステマ。 来る 2015/2/14 (土) オープンセミナー広島が開催されます。 http://osh-web.github.io/
PowerShell のセッションもあるよ!
この本を書かれた方が来られます!
この機会に是非ご参加ください!