private knowhow
Revision | 4d8add1967f655e5710d6b3d0a157e31d1d115ca (tree) |
---|---|
Zeit | 2014-01-28 07:20:09 |
Autor | oga <hyperoga@gmai...> |
Commiter | oga |
change powershell
@@ -46,19 +46,38 @@ PS> Triangle 6 2 ( | ||
46 | 46 | これによってPowerShellの起動時にProfile.ps1が自動実行され、 |
47 | 47 | (例えば)関数やエイリアスの登録を行うことができる(*)。 |
48 | 48 | |
49 | -* なお、profile.ps1の内容はすべてグローバル・スコープで登録される。 | |
50 | -従って、明示的にスコープ修飾子によるスコープ宣言を行う必要はない。 | |
49 | + * なお、profile.ps1の内容はすべてグローバル・スコープで登録される。 | |
50 | + 従って、明示的にスコープ修飾子によるスコープ宣言を行う必要はない。 | |
51 | 51 | |
52 | 52 | (b)ユーザ固有プロファイル |
53 | - 「C:\Documents and Settings\<ユーザー名>\My Documents\WindowsPowerShell」 | |
54 | - フォルダにprofile.ps1を配置 | |
55 | - | |
53 | + XP 「C:\Documents and Settings\<ユーザー名>\My Documents\WindowsPowerShell」 | |
54 | + フォルダにprofile.ps1を配置 | |
55 | + Win7「C:\Users\<ユーザー名>\Documents\WindowsPowerShell」 | |
56 | + フォルダにMicrosoft.PowerShell_profile.ps1を配置 | |
57 | + 場所は | |
58 | + $Profileで確認 | |
59 | + | |
60 | +(6)環境変数表示 | |
61 | + PS> env | |
62 | + #PS> Get-ChildItem env: | |
63 | + PS> $env.Path | |
64 | + PS> $env:Path.split(";") | |
65 | + | |
66 | + 環境変数設定 | |
67 | + PS> $env:Path = "C:\usr\bin;C:\users\user\bin" | |
68 | + PS> $env:Path += "C:\usr\bin" | |
69 | + PS> $env:Path = $env:Path + ";C:\users\user\bin" | |
70 | + | |
71 | +{ | |
56 | 72 | 2. 各仕様 |
57 | 73 | (1)引数の受け取り |
58 | 74 | (a)デフォルト |
59 | 75 | $Args[0] ... 第1引数 |
60 | 76 | $Args[1] ... 第2引数 |
61 | 77 | |
78 | + 引数の数 | |
79 | + $Args.Length | |
80 | + | |
62 | 81 | (b)Param([string] $name) |
63 | 82 | Write-Output "こんにちは、 $name さん!" |
64 | 83 |
@@ -166,14 +185,34 @@ Yoshihiro | ||
166 | 185 | |
167 | 186 | (9)分岐 |
168 | 187 | $x = 100 |
169 | -if ($x -ge 80){ | |
188 | +if ($x -ge 80) { | |
170 | 189 | Write-Output '変数$xは80以上です。' |
171 | -} elseif ($x -ge 40){ | |
190 | +} elseif ($x -ge 40) { | |
172 | 191 | Write-Output '変数$xは40以上80未満です。' |
173 | 192 | } else { |
174 | 193 | Write-Output '変数$xは40未満です。' |
175 | 194 | } |
176 | 195 | |
196 | +比較演算子 | |
197 | +演算子 説明 | |
198 | +-eq 等しい | |
199 | +-ne 等しくない | |
200 | +-gt より大きい | |
201 | +-ge 以上 | |
202 | +-lt より小さい | |
203 | +-le 以下 | |
204 | +-like ワイルドカードによる比較 | |
205 | +-notlike ワイルドカードによる比較 | |
206 | +-match 正規表現による比較 | |
207 | +-nomatch 正規表現による比較 | |
208 | + | |
209 | +上記は大文字と小文字を区別しない | |
210 | +(上記演算子名の前に文字iを付けて-ieq | |
211 | + とした場合も大文字と小文字を区別しません) | |
212 | +大文字と小文字を区別する場合は上記演算子名の | |
213 | +前に文字cを付けて -ceq のようにする。 | |
214 | + | |
215 | + | |
177 | 216 | (10)switch |
178 | 217 | $x = 1 |
179 | 218 | switch($x){ |
@@ -268,8 +307,27 @@ function | ||
268 | 307 | [return 戻り値] |
269 | 308 | } |
270 | 309 | |
310 | +(15)日付取得 | |
311 | + PS> get-date | |
312 | + PS> get-date -UFormat "%Y/%m/%d %H:%M:%S" | |
313 | + PS> get-date -Format "yyyy/MM/dd hh:mm:ss.fff" | |
314 | + | |
315 | + ミリ秒取得 | |
316 | + $cur = (get-date -Format "hh,mm,ss,fff").split(",") | |
317 | + $start = (([Int32]$cur[0]) * 3600 + ([Int32]$cur[1]) * 60 + ([Int32]$cur[2])*1000) + [Int32]$cur[3] | |
318 | + | |
319 | + (注)[Int32]でキャストしないと文字列が複数回羅列されるので注意 | |
320 | + | |
321 | + | |
322 | +3. コマンド | |
323 | +(1)grep | |
324 | + Select-String | |
325 | + | |
326 | + grep して wc -l | |
327 | + (ipconfig | Select-String IPv4).Length | |
271 | 328 | |
272 | -3. .NET Frameworkクラス・ライブラリの利用方法 | |
329 | +{ | |
330 | +4. .NET Frameworkクラス・ライブラリの利用方法 | |
273 | 331 | .NET Frameworkが提供するクラスをインスタンス化して、 |
274 | 332 | スクリプトの中で利用することも可能。 |
275 | 333 | これによって、スクリプト上でVisual BasicやC#と |