Submit Search
Upload
PowerShellが苦手だった男がPowerShellを愛するようになるまで
•
36 likes
•
28,629 views
Kazuhiro Matsushima
Follow
PowerShell とのお付き合い事始めです。初心者が PowerShell で躓くところ(実際引っかかった)を実体験を踏まえて紹介します。(主催者により記述編集)
Read less
Read more
Technology
Report
Share
Report
Share
1 of 52
Download now
Download to read offline
Recommended
これからSpringを使う開発者が知っておくべきこと
これからSpringを使う開発者が知っておくべきこと
土岐 孝平
PostgreSQL 12は ここがスゴイ! ~性能改善やpluggable storage engineなどの新機能を徹底解説~ (NTTデータ テクノ...
PostgreSQL 12は ここがスゴイ! ~性能改善やpluggable storage engineなどの新機能を徹底解説~ (NTTデータ テクノ...
NTT DATA Technology & Innovation
DBスキーマもバージョン管理したい!
DBスキーマもバージョン管理したい!
kwatch
日本語テストメソッドについて
日本語テストメソッドについて
kumake
ソーシャルゲームのためのデータベース設計
ソーシャルゲームのためのデータベース設計
Yoshinori Matsunobu
SQL大量発行処理をいかにして高速化するか
SQL大量発行処理をいかにして高速化するか
Shogo Wakayama
本当にわかる Spectre と Meltdown
本当にわかる Spectre と Meltdown
Hirotaka Kawata
Javaのログ出力: 道具と考え方
Javaのログ出力: 道具と考え方
Taku Miyakawa
Recommended
これからSpringを使う開発者が知っておくべきこと
これからSpringを使う開発者が知っておくべきこと
土岐 孝平
PostgreSQL 12は ここがスゴイ! ~性能改善やpluggable storage engineなどの新機能を徹底解説~ (NTTデータ テクノ...
PostgreSQL 12は ここがスゴイ! ~性能改善やpluggable storage engineなどの新機能を徹底解説~ (NTTデータ テクノ...
NTT DATA Technology & Innovation
DBスキーマもバージョン管理したい!
DBスキーマもバージョン管理したい!
kwatch
日本語テストメソッドについて
日本語テストメソッドについて
kumake
ソーシャルゲームのためのデータベース設計
ソーシャルゲームのためのデータベース設計
Yoshinori Matsunobu
SQL大量発行処理をいかにして高速化するか
SQL大量発行処理をいかにして高速化するか
Shogo Wakayama
本当にわかる Spectre と Meltdown
本当にわかる Spectre と Meltdown
Hirotaka Kawata
Javaのログ出力: 道具と考え方
Javaのログ出力: 道具と考え方
Taku Miyakawa
Where狙いのキー、order by狙いのキー
Where狙いのキー、order by狙いのキー
yoku0825
これからLDAPを始めるなら 「389-ds」を使ってみよう
これからLDAPを始めるなら 「389-ds」を使ってみよう
Nobuyuki Sasaki
Java ORマッパー選定のポイント #jsug
Java ORマッパー選定のポイント #jsug
Masatoshi Tada
Wiresharkの解析プラグインを作る ssmjp 201409
Wiresharkの解析プラグインを作る ssmjp 201409
稔 小林
【第26回Elasticsearch勉強会】Logstashとともに振り返る、やっちまった事例ごった煮
【第26回Elasticsearch勉強会】Logstashとともに振り返る、やっちまった事例ごった煮
Hibino Hisashi
SpringBootTest入門
SpringBootTest入門
Yahoo!デベロッパーネットワーク
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
Shota Shinogi
ソーシャルゲーム案件におけるDB分割のPHP実装
ソーシャルゲーム案件におけるDB分割のPHP実装
infinite_loop
Jbatch実践入門 #jdt2015
Jbatch実践入門 #jdt2015
Norito Agetsuma
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
Yahoo!デベロッパーネットワーク
データウェアハウスモデリング入門(ダイジェスト版)(事前公開版)
データウェアハウスモデリング入門(ダイジェスト版)(事前公開版)
Satoshi Nagayasu
ヤフー社内でやってるMySQLチューニングセミナー大公開
ヤフー社内でやってるMySQLチューニングセミナー大公開
Yahoo!デベロッパーネットワーク
Vacuum徹底解説
Vacuum徹底解説
Masahiko Sawada
Apache Arrow - データ処理ツールの次世代プラットフォーム
Apache Arrow - データ処理ツールの次世代プラットフォーム
Kouhei Sutou
Spring Boot on Kubernetes : Yahoo!ズバトク事例 #jjug_ccc
Spring Boot on Kubernetes : Yahoo!ズバトク事例 #jjug_ccc
Yahoo!デベロッパーネットワーク
雑なMySQLパフォーマンスチューニング
雑なMySQLパフォーマンスチューニング
yoku0825
PostgreSQLのトラブルシューティング@第5回中国地方DB勉強会
PostgreSQLのトラブルシューティング@第5回中国地方DB勉強会
Shigeru Hanada
Inside vacuum - 第一回PostgreSQLプレ勉強会
Inside vacuum - 第一回PostgreSQLプレ勉強会
Masahiko Sawada
PostgreSQL16新機能紹介 - libpq接続ロード・バランシング(第41回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQL16新機能紹介 - libpq接続ロード・バランシング(第41回PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
PostgreSQL Unconference #29 Unicode IVS
PostgreSQL Unconference #29 Unicode IVS
Noriyoshi Shinoda
5分でわかる静的解析入門
5分でわかる静的解析入門
Kenta USAMI
Write-Help
Write-Help
和紀 大鷲
More Related Content
What's hot
Where狙いのキー、order by狙いのキー
Where狙いのキー、order by狙いのキー
yoku0825
これからLDAPを始めるなら 「389-ds」を使ってみよう
これからLDAPを始めるなら 「389-ds」を使ってみよう
Nobuyuki Sasaki
Java ORマッパー選定のポイント #jsug
Java ORマッパー選定のポイント #jsug
Masatoshi Tada
Wiresharkの解析プラグインを作る ssmjp 201409
Wiresharkの解析プラグインを作る ssmjp 201409
稔 小林
【第26回Elasticsearch勉強会】Logstashとともに振り返る、やっちまった事例ごった煮
【第26回Elasticsearch勉強会】Logstashとともに振り返る、やっちまった事例ごった煮
Hibino Hisashi
SpringBootTest入門
SpringBootTest入門
Yahoo!デベロッパーネットワーク
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
Shota Shinogi
ソーシャルゲーム案件におけるDB分割のPHP実装
ソーシャルゲーム案件におけるDB分割のPHP実装
infinite_loop
Jbatch実践入門 #jdt2015
Jbatch実践入門 #jdt2015
Norito Agetsuma
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
Yahoo!デベロッパーネットワーク
データウェアハウスモデリング入門(ダイジェスト版)(事前公開版)
データウェアハウスモデリング入門(ダイジェスト版)(事前公開版)
Satoshi Nagayasu
ヤフー社内でやってるMySQLチューニングセミナー大公開
ヤフー社内でやってるMySQLチューニングセミナー大公開
Yahoo!デベロッパーネットワーク
Vacuum徹底解説
Vacuum徹底解説
Masahiko Sawada
Apache Arrow - データ処理ツールの次世代プラットフォーム
Apache Arrow - データ処理ツールの次世代プラットフォーム
Kouhei Sutou
Spring Boot on Kubernetes : Yahoo!ズバトク事例 #jjug_ccc
Spring Boot on Kubernetes : Yahoo!ズバトク事例 #jjug_ccc
Yahoo!デベロッパーネットワーク
雑なMySQLパフォーマンスチューニング
雑なMySQLパフォーマンスチューニング
yoku0825
PostgreSQLのトラブルシューティング@第5回中国地方DB勉強会
PostgreSQLのトラブルシューティング@第5回中国地方DB勉強会
Shigeru Hanada
Inside vacuum - 第一回PostgreSQLプレ勉強会
Inside vacuum - 第一回PostgreSQLプレ勉強会
Masahiko Sawada
PostgreSQL16新機能紹介 - libpq接続ロード・バランシング(第41回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQL16新機能紹介 - libpq接続ロード・バランシング(第41回PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
PostgreSQL Unconference #29 Unicode IVS
PostgreSQL Unconference #29 Unicode IVS
Noriyoshi Shinoda
What's hot
(20)
Where狙いのキー、order by狙いのキー
Where狙いのキー、order by狙いのキー
これからLDAPを始めるなら 「389-ds」を使ってみよう
これからLDAPを始めるなら 「389-ds」を使ってみよう
Java ORマッパー選定のポイント #jsug
Java ORマッパー選定のポイント #jsug
Wiresharkの解析プラグインを作る ssmjp 201409
Wiresharkの解析プラグインを作る ssmjp 201409
【第26回Elasticsearch勉強会】Logstashとともに振り返る、やっちまった事例ごった煮
【第26回Elasticsearch勉強会】Logstashとともに振り返る、やっちまった事例ごった煮
SpringBootTest入門
SpringBootTest入門
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
ネットストーカー御用達OSINTツールBlackBirdを触ってみた.pptx
ソーシャルゲーム案件におけるDB分割のPHP実装
ソーシャルゲーム案件におけるDB分割のPHP実装
Jbatch実践入門 #jdt2015
Jbatch実践入門 #jdt2015
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
At least onceってぶっちゃけ問題の先送りだったよね #kafkajp
データウェアハウスモデリング入門(ダイジェスト版)(事前公開版)
データウェアハウスモデリング入門(ダイジェスト版)(事前公開版)
ヤフー社内でやってるMySQLチューニングセミナー大公開
ヤフー社内でやってるMySQLチューニングセミナー大公開
Vacuum徹底解説
Vacuum徹底解説
Apache Arrow - データ処理ツールの次世代プラットフォーム
Apache Arrow - データ処理ツールの次世代プラットフォーム
Spring Boot on Kubernetes : Yahoo!ズバトク事例 #jjug_ccc
Spring Boot on Kubernetes : Yahoo!ズバトク事例 #jjug_ccc
雑なMySQLパフォーマンスチューニング
雑なMySQLパフォーマンスチューニング
PostgreSQLのトラブルシューティング@第5回中国地方DB勉強会
PostgreSQLのトラブルシューティング@第5回中国地方DB勉強会
Inside vacuum - 第一回PostgreSQLプレ勉強会
Inside vacuum - 第一回PostgreSQLプレ勉強会
PostgreSQL16新機能紹介 - libpq接続ロード・バランシング(第41回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQL16新機能紹介 - libpq接続ロード・バランシング(第41回PostgreSQLアンカンファレンス@オンライン 発表資料)
PostgreSQL Unconference #29 Unicode IVS
PostgreSQL Unconference #29 Unicode IVS
Similar to PowerShellが苦手だった男がPowerShellを愛するようになるまで
5分でわかる静的解析入門
5分でわかる静的解析入門
Kenta USAMI
Write-Help
Write-Help
和紀 大鷲
勉強会 Cvml python基礎
勉強会 Cvml python基礎
真哉 杉野
密着!わたしのコンソールアプリ開発環境
密着!わたしのコンソールアプリ開発環境
Fumihito Yokoyama
ぼくとしりとりの約3.0*10^3日間戦争
ぼくとしりとりの約3.0*10^3日間戦争
Eric Sartre
C++でCプリプロセッサを作ったり速くしたりしたお話
C++でCプリプロセッサを作ったり速くしたりしたお話
Kinuko Yasuda
High performance python computing for data science
High performance python computing for data science
Takami Sato
PHP でも活用できる Makefile
PHP でも活用できる Makefile
Shohei Okada
簡易デプロイツール(スクリプト)を作ってみた話
簡易デプロイツール(スクリプト)を作ってみた話
yokoda_toshiaki
PyPy 紹介
PyPy 紹介
shoma h
デプロイに苦労した話
デプロイに苦労した話
tetuwo181
"Continuous Publication" with Python: Another Approach
"Continuous Publication" with Python: Another Approach
Daisuke Miyakawa
2011年10月21日
2011年10月21日
nukaemon
LL Onsen 2008 OpenPrinting
LL Onsen 2008 OpenPrinting
Naruhiko Ogasawara
レンタルサーバで今すぐ始めるWEB開発
レンタルサーバで今すぐ始めるWEB開発
Naoyuki Kataoka
of_protocol_tremaday5
of_protocol_tremaday5
エイシュン コンドウ
YAPC::Asia 2014 - 半端なPHPDisでPHPerに陰で笑われないためのPerl Monger向け最新PHP事情
YAPC::Asia 2014 - 半端なPHPDisでPHPerに陰で笑われないためのPerl Monger向け最新PHP事情
Junichi Ishida
Glibc malloc internal
Glibc malloc internal
Motohiro KOSAKI
Python × Herokuで作る 雑談slack bot
Python × Herokuで作る 雑談slack bot
dcubeio
20120915 Pythonは本当にBlenderの役に立っているか?
20120915 Pythonは本当にBlenderの役に立っているか?
Tetsuo Mitsuda
Similar to PowerShellが苦手だった男がPowerShellを愛するようになるまで
(20)
5分でわかる静的解析入門
5分でわかる静的解析入門
Write-Help
Write-Help
勉強会 Cvml python基礎
勉強会 Cvml python基礎
密着!わたしのコンソールアプリ開発環境
密着!わたしのコンソールアプリ開発環境
ぼくとしりとりの約3.0*10^3日間戦争
ぼくとしりとりの約3.0*10^3日間戦争
C++でCプリプロセッサを作ったり速くしたりしたお話
C++でCプリプロセッサを作ったり速くしたりしたお話
High performance python computing for data science
High performance python computing for data science
PHP でも活用できる Makefile
PHP でも活用できる Makefile
簡易デプロイツール(スクリプト)を作ってみた話
簡易デプロイツール(スクリプト)を作ってみた話
PyPy 紹介
PyPy 紹介
デプロイに苦労した話
デプロイに苦労した話
"Continuous Publication" with Python: Another Approach
"Continuous Publication" with Python: Another Approach
2011年10月21日
2011年10月21日
LL Onsen 2008 OpenPrinting
LL Onsen 2008 OpenPrinting
レンタルサーバで今すぐ始めるWEB開発
レンタルサーバで今すぐ始めるWEB開発
of_protocol_tremaday5
of_protocol_tremaday5
YAPC::Asia 2014 - 半端なPHPDisでPHPerに陰で笑われないためのPerl Monger向け最新PHP事情
YAPC::Asia 2014 - 半端なPHPDisでPHPerに陰で笑われないためのPerl Monger向け最新PHP事情
Glibc malloc internal
Glibc malloc internal
Python × Herokuで作る 雑談slack bot
Python × Herokuで作る 雑談slack bot
20120915 Pythonは本当にBlenderの役に立っているか?
20120915 Pythonは本当にBlenderの役に立っているか?
Recently uploaded
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NTT DATA Technology & Innovation
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
Yuki Kikuchi
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
博三 太田
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
UEHARA, Tetsutaro
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
FumieNakayama
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
FumieNakayama
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
akihisamiyanaga1
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
Hiroshi Tomioka
Recently uploaded
(8)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
PowerShellが苦手だった男がPowerShellを愛するようになるまで
1.
1 PowerShell が苦手だった男が PowerShell を愛するようになるまで ガブ
/ @gab_km 2014/07/12 第 3 回 PowerShell 勉強会
2.
2 お前だれよ ● 拝承系 SIer
勤務のしがないエンジニア ● .NET 開発者、特に F# 界隈の人 ● Python や D 言語にも興味あり ● もちろん PowerShell もね!
3.
3 今日話すこと ● PowerShell が苦手→書けるようになった ●
どの辺りが分かれば苦手意識がなくなるか
4.
4 かつての僕
5.
5 かつての僕 この時点 (2011/03/24) の
2 年前なので、 2009 年頃には PowerShell に手を出していた模様。
6.
6 何が苦手だったか という感じの躓き方をしていた。 当時の記憶を思い出してみると、 ● コマンド体系が bat
から結構変わっている ( ように見えた ) ● 今まで bat で出来ていたことが、 PowerShell だとすぐに出 来なかった
7.
7 今はどうか
8.
8 今はどうか これが去年 (2013) の春のこと。 1
年ちょっと、いろんなものを PowerShell で書くようにし ていたら、それなりに出来るようになってきた。
9.
9 実例その 1 当初 bat
で PC の起動時処理 ( メーラーや便利ツールの起動、 ファイルサーバーとの接続など ) を書いていた。
10.
10 実例その 1 当初 bat
で PC の起動時処理 ( メーラーや便利ツールの起動、 ファイルサーバーとの接続など ) を書いていた。 ↓ Python を覚えて、これらの起動時処理を Python で全て書き 直した。 (Python の勉強に役立った )
11.
11 実例その 1 当初 bat
で PC の起動時処理 ( メーラーや便利ツールの起動、 ファイルサーバーとの接続など ) を書いていた。 ↓ Python を覚えて、これらの起動時処理を Python で全て書き 直した。 (Python の勉強に役立った ) ↓ PowerShell の勉強のために、起動時処理を PowerShell で 改めて書き直した。
12.
12 実例その 2
13.
13 実例その 2 Chocolatey がなかなか良い感じなんだけど、某拝承系
SIer の作業環境はプロキシの壁の中。 なので、 chocolatey install がプロキシ経由でも上手く いくように Pull Request を投げてみた。
14.
14 実例その 2 Chocolatey がなかなか良い感じなんだけど、某拝承系
SIer の作業環境はプロキシの壁の中。 なので、 chocolatey install がプロキシ経由でも上手く いくように Pull Request を投げてみた。 ※2014/07/12 現在、絶賛放置中
15.
15 実例その 3
16.
16 実例その 3 # どこのメーカーかはお察し Get-ChildItem
| Where { $_.Name.StartsWith("MAKERNAME") } | ForEach { Rename-Item $_ -newname ($(Get-ItemProperty $_).LastWriteTime.ToString("yyyyMMdd_hhmm") + ".MP4") }
17.
17 何が分かって苦手じゃなくなったか この辺りができるように調べながらやり方を覚えていくことで PowerShell を書くことが苦手じゃなくなった。 ● ファイルの指定と実行 ●
ファイルに対する操作 ● パイプライン操作
18.
18 何が分かって苦手じゃなくなったか この辺りができるように調べながらやり方を覚えていくことで PowerShell を書くことが苦手じゃなくなった。 ● ファイルの指定と実行 ●
ファイルに対する操作 ● パイプライン操作 もし PowerShell に苦手意識を感じている方でも、この 3 つ ができれば、最初の大きなハードルが乗り越えられると思う。
19.
19 ● ファイルの指定と実行 ● ファイルに対する操作 ●
パイプライン操作
20.
20 ファイルの指定と実行 PS> notitle.ps1 カレントディレクトリに作成した notitle.ps1
というスク リプトファイル。 これを実行しようと上のように入力してみた。 うまく行けば “ Hello, there!” という文字列が表示され る。
21.
21 ファイルの指定と実行 PS> notitle.ps1 notitle.ps1 :
用語 'notitle.ps1' は、コマンドレット、関数、スクリ プト ファイル、または操作可能なプ ログラムの名前として認識されません。名前が正しく記述されていることを確認 し、パスが含まれている場合 はそのパスが正しいことを確認してから、再試行してください。 発生場所 行 :1 文字 :1 + notitle.ps1 + ~~~~~~~~~~~ + CategoryInfo : ObjectNotFound: (notitle.ps1:String) [], CommandNotFoundException + FullyQualifiedErrorId : CommandNotFoundException PS>
22.
22 ファイルの指定と実行 PS> notitle.ps1 notitle.ps1 :
用語 'notitle.ps1' は、コマンドレット、関数、スクリ プト ファイル、または操作可能なプ ログラムの名前として認識されません。名前が正しく記述されていることを確認 し、パスが含まれている場合 はそのパスが正しいことを確認してから、再試行してください。 発生場所 行 :1 文字 :1 + notitle.ps1 + ~~~~~~~~~~~ + CategoryInfo : ObjectNotFound: (notitle.ps1:String) [], CommandNotFoundException + FullyQualifiedErrorId : CommandNotFoundException PS> ターミナル上では補完が効く話ではあるけれど、単純に .bat から .ps1 に書き換えてる時にこのつらみが…。
23.
23 ファイルの指定 (1) 絶対パスを使う PS>
C:myposhnotitle.ps1
24.
24 ファイルの指定 (1) 絶対パスを使う PS>
C:myposhnotitle.ps1 Hello, there! PS> これは確実な方法だが、多少冗長な面は否めない。
25.
25 ファイルの指定 (2)'.' を使う PS>
.notitle.ps1
26.
26 ファイルの指定 (2)'.' を使う PS>
.notitle.ps1 Hello, there! PS> カレントディレクトリにあるファイルを指定したい場合、パス の先頭に '.' を付与する。
27.
27 ファイルが実行できない場合 PS> $myScript =
“C:myposhnotitle.ps1” PS> $myScript ファイルを実行する際、先述の方法では上手くいかない場合が ある。
28.
28 ファイルが実行できない場合 PS> $myScript =
“C:myposhnotitle.ps1” PS> $myScript C:myposhnotitle.ps1 PS>
29.
29 ファイルが実行できない場合 PS> $myScript =
“C:myposhnotitle.ps1” PS> $myScript C:myposhnotitle.ps1 PS> 実行後、周囲に漂うソウジャナイヨ感は、殺伐としたギョームにおける 一服の清涼剤となる。 # ならない
30.
30 ファイルの実行 (1) '&'
を使う PS> & $myScript Hello, there! PS> こういう場合、実行したいパスをアンパサンド (&) に渡すこ とで実行できる。 アンパサンドとパスは、間のスペースの有無にかかわらず動作 する。
31.
31 ファイルの実行 (2) '.'
を使う PS> . $myScript Hello, there! PS> 同じような場面で、ドット (.) を使うことで指定したパスに あるファイルを実行する。 この方法を「ドットソース形式での読み込み」と言う。
32.
32 ファイルの実行 (2) '.'
を使う PS> . $myScript Hello, there! PS> 同じような場面で、ドット (.) を使うことで指定したパスに あるファイルを実行する。 この方法を「ドットソース形式での読み込み」と言う。 詳しくは検索するか、会場にいる PowerShell のこわい人た ちに聞いてみてください ( ◜◡◝ )
33.
33 ● ファイルの指定と実行 ● ファイルに対する操作 ●
パイプライン操作
34.
34 ファイルに対する操作 ● コピー ● リネーム ●
削除 ファイルに対して、以下の操作を行いたいことが多かった。
35.
35 ファイルに対する操作 古き良きコマンドプロンプトのコマンドを使えなくはない。 … が、せっかく PowerShell
に手を出したんだから、コマン ドレットを使いたいという意識の高さがあった。 ● コピー ● リネーム ● 削除 ファイルに対して、以下の操作を行いたいことが多かった。
36.
36 ファイルのコピー (1) PS> Copy-Item
-Path .notitle.ps1 -Destination C:myetc PS> ls C:myetc | where Name -eq notitle.ps1 ディレクトリ : C:myetc Mode LastWriteTime Length Name ---- ------------- ------ ---- -a--- 2014/07/11 23:42 31 notitle.ps1 PS> とりあえず、 Copy-Item を使う。
37.
37 ファイルのコピー (2) PS> Get-ChildItem
C:myetc | % { $_.Name } PS> Copy-Item -Path C:myposhn* -Destination C:myetc PS> Get-ChildItem C:myetc | % { $_.Name } Copy-Item の -Path パラメータ、ワイルドカードをmgmg してくれるので、以下のような使い方ができる。
38.
38 ファイルのコピー (2) PS> Get-ChildItem
C:myetc | % { $_.Name } PS> Copy-Item -Path C:myposhn* -Destination C:myetc PS> Get-ChildItem C:myetc | % { $_.Name } notitle.ps1 nanimoyarukishinai.txt PS> Copy-Item の -Path パラメータ、ワイルドカードをmgmg してくれるので、以下のような使い方ができる。
39.
39 ファイルのリネーム PS> ls |
% { $_.Name } notitle.ps1 PS> Rename-Item -Path .notitle.ps1 -NewName foobar.ps1 PS> ls | % { $_.Name } foobar.ps1 PS> こちらも、とりあえず Rename-Item を使う。
40.
40 ファイルの削除 PS> ls |
% { $_.Name } notitle.ps1 PS> Remove-Item .notitle.ps1 PS> ls | % { $_.Name } PS> Remove-Item を使う。
41.
41 ファイルの削除 PS> ls |
% { $_.Name } notitle.ps1 PS> Remove-Item .notitle.ps1 PS> ls | % { $_.Name } PS> Remove-Item を使う。 PowerShell は「動詞 - 目的語」という名前でコマンドレッ トが定義されており、直感的に探しやすい。
42.
42 ● ファイルの指定と実行 ● ファイルに対する操作 ●
パイプライン操作
43.
43 パイプライン操作 「 PowerShell といえばパイプライン、
44.
44 パイプライン操作 「 PowerShell といえばパイプライン、 パイプラインといえば
F# PowerShell 」という関係。
45.
45 パイプライン操作 の 2 つに大別されると思う。
(※ 個人の感想です ) ● フィルター ● 逐次 「 PowerShell といえばパイプライン、 パイプラインといえば F# PowerShell 」という関係。 パイプラインでやりたい操作といえば
46.
46 パイプライン操作 - フィルター @("hoge",
"fuga", "bar") | where { $_.Length -eq 4 } # "hoge" # "fuga" パイプラインの基本操作といえば、やはりフィルター。 条件ブロックを渡した Where-Object を通すことで、その 条件にマッチした要素だけが残る。
47.
47 パイプライン操作 - フィルター @("hoge",
"fuga", "bar") | where { $_.Length -eq 4 } # "hoge" # "fuga" パイプラインの基本操作といえば、やはりフィルター。 条件ブロックを渡した Where-Object を通すことで、その 条件にマッチした要素だけが残る。 $_ はパイプライン先で要素を指す変数。 パイプライン操作を覚え始めた頃は、何故か覚えられなくてい つもぐぐっていた…。
48.
48 パイプライン操作 - 逐次
(1) @("hoge", "fuga", "bar") | foreach { $_.ToUpper() } # "HOGE" # "FUGA" # “BAR” パイプラインで渡されたコレクションの各要素に対し て、 ForEach-Object に渡したブロックの処理を行う。 皆さんがお使いの関数型言語でいうところの、 map や iter と だいたい同じ役割になる。
49.
49 パイプライン操作 - 逐次
(2) @(1 .. 3) | % { $_ + 2 } # 3 # 4 # 5 foreach には % という略記号が用意されているので便利。
50.
50 今日話したこと ● PowerShell が苦手→書けるようになった ●
どの辺りが分かれば苦手意識がなくなるか
51.
51 今日話したこと ● PowerShell が苦手→書けるようになった ●
どの辺りが分かれば苦手意識がなくなるか ● ファイルの指定と実行 ● ファイルに対する操作 ● パイプライン操作
52.
52 今日話したこと ● PowerShell が苦手→書けるようになった ●
どの辺りが分かれば苦手意識がなくなるか ● ファイルの指定と実行 ● ファイルに対する操作 ● パイプライン操作 すごい PowerShell いっぱい遊ぼう!
Download now