Powershellを選択すべき10の理由(cmdを捨てるべき)
Powershellは、Windows 7の時代からWindowsに組み込まれており、現在Windowsシステム上で共存しているMicrosoftのcmdからの大きなアップグレードと見ることができます。
{1つ目は、powershellを学ぶのに非常にお勧めのサイトです。 まず、powershellの学習サイトとして強くお勧めするのが、このサイトです。
1.powershellはより強力である。
マイクロソフトの "powershell" という名前はちょっと自慢げですが(私も以前はそう思っていました)、そんなことはありません。powershell は Linux の bash よりも強力ですし、悪評高い cmd は言うに及ばずです。(宣伝の意図はありません)
powershellはオブジェクト指向を完全にサポートしています。
{NET .NETプログラミングシステムにより、スクリプト作成がより簡単に、より強固になりました。一方、cmdはちょっとしたコマンドの束に過ぎないのです。
cmdからpowershellへの移行コストはほぼゼロに近い
cmdに愛着がありすぎて手放せないという方も、まったく問題ありません! powershell は cmd のスーパーセットなので、dir, cd, ipconfig などの一般的なコマンドはすべて powershell で直接使うことができるのです。powershellは完全なオブジェクト指向に基づいており、関数やオブジェクトにquot;aliases"を与えることで、これらの古いコマンドをサポートしているのです。
4. 誘惑のパイプライン操作
パイプ操作はLinuxのシェルからヒントを得ていますが、powershellは文字列を直接扱うのではなく、すべてをオブジェクトで包んでいるので、そのパイプ操作はLinuxのシェルよりはるかに柔軟です。
例
PS C:\Users\Haley> ls | sort -Descending Name | Format-Table Name,Mode
Name Mode
---- ----
VirtualBox VMs d-----
Videos d-r----
Searches d-r----
Saved Games d-r---
Pictures d-r---
OneDrive d-r---
Music d-r----
Links d-r---
このコマンドは、現在のパスにあるすべてのファイルを名前の降順で並べ、Name と Mode のフィールドだけを表示した表に出力します。
5. 完全なヘルプドキュメント
どんな関数やオブジェクトも help * コマンド(正確には Get-Help 関数で、より "オブジェクト指向的な命名規則で、help はその別名)で見ることができます。もし理解できない場合は、-onlineパラメータを追加すれば、オンラインヘルプの完全なドキュメントを開くことができるので、マイクロソフトのワンストップサービスには感心するばかりです。
例えば、lsのヘルプ文書は以下の通りです。
PS C:\Users\Haley> help ls
Name
Get-ChildItem
Summary
Gets the items and child items in one or more specified locations.
Syntax
Get-ChildItem [[-Filter] <String>] [-Attributes {ReadOnly | Hidden | System | Directory | Archive | Device | Normal
| Temporary | SparseFile | ReparsePoint | Compressed | Offline | NotContentIndexed | Encrypted | IntegrityStream |
NoScrubData}] [-Depth <UInt32>] [-Directory] [-Exclude <String[]>] [-File] [-Force] [-Hidden] [-Include <String[]>
] -LiteralPath <String[]> [-Name] [-ReadOnly] [-Recurse] [-System] [-UseTransaction] [<CommonParameters>]
Get-ChildItem [[-Path] <String[]>] [[-Filter] <String>] [-Attributes {ReadOnly | Hidden | System | Directory | Arch
ive | Device | Normal | Temporary | SparseFile | ReparsePoint | Compressed | Offline | NotContentIndexed | Encrypte
d | IntegrityStream | NoScrubData}] [-Depth <UInt32>] [-Directory] [-Exclude <String[]>] [-File] [-Force] [-Hidden]
[-Include <String[]>] [-Name] [-ReadOnly] [-Recurse] [-System] [-UseTransaction] [<CommonParameters>]
Description
The Get-ChildItem cmdlet gets the items in one or more specified locations.
You can use the Recurse parameter to get items in all child cont
ainers.
A location can be a file system location, such as a directory, or a location exposed by a different Windows PowerSh
ell provider, such as a registry hive or a certificate store.
Related links
Online Version: http://go.microsoft.com/fwlink/?LinkId=821580
Get-Item
Get-Location
Get-Process
Get-PSProvider
Note
To see an example, type: "get-help Get-ChildItem -examples".
For more information, type: "get-help Get-ChildItem -detailed".
To get technical information, type: "get-help Get-ChildItem -full".
For online help, type: "get-help Get-ChildItem -online"
6. 基本的な数学演算と配列演算(加算、減算、乗算、除算モジュロ)をサポートし、電卓として開放可能
PS C:\Users\Haley> 1 + 1
2
PS C:\Users\Haley> 3 * 5
15
PS C:\Users\Haley> 0xab
171
PS C:\Users\Haley> 1kb
1024
PS C:\Users\Haley> 1mb / 1kb
1024
7. 優れたスクリプトの経験
powershellスクリプトの構文は高級プログラミング言語と非常に似ており、例えば、分岐文 if(...) {} else{}, ループ for(...) {} はC言語と似ていないため、プログラミング体験を大幅に向上させることができます。
8. 豊富な文字列操作のオブジェクトと関数、正規表現の完全サポート
文字列操作はシェルスクリプトの主な仕事であり、正規表現はこれ以上説明する必要はないでしょう。
9. リダイレクトのサポートでファイルの読み書きが楽々
powershellは、html、csv、xmlなどへの結果のエクスポートと、リダイレクトによるファイルからの読み込みをネイティブでサポートしています。
例
PS C:\Users\Haley> ls | Select-Object Mode,Name | Export-Csv ~/desktop/test.csv
カレントディレクトリにあるすべてのファイル名-書き込み権限をcsvファイルに保存します。
デバッグ対応
この機能はほとんど使われませんが、デバッグサポートは完全なプログラミング言語にとって不可欠な機能です。
関連
-
Powershellスクリプトに電子署名を行う方法
-
PowerShell チュートリアル curl (Invoke-WebRequest) の使用方法について
-
このシステムでのスクリプトの実行を無効にするPowerShellソリューション
-
PowerShellでの追加を解説
-
スクリプトの記述と実行のためのPowershellの実装
-
PowerShellの基本的な使い方のチュートリアル
-
ADユーザーのパスワード属性を一括で変更するPowerShellコード
-
PowerShell DSC コンポーネント xExchange をリリースしました。
-
PowerShellによる印刷ジョブのクエリと削除のコード例
-
PowerShellで複数ファイルからキーワードを取得する
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
PowerShellリモートタスクの実行手順
-
nugetパッケージのファイル消失問題を解決するためのpowershellスクリプトを追加しました。
-
PowerShellでは配列のフィルタリングにmatch演算子を使用する
-
PowerShellタイムロギングスクリプト
-
PowerShell 配列の複数の入力メソッド
-
PowerShellにおける関数のオーバーロードの例
-
文字列中の大文字を検索するPowerShellの実装
-
コマンドライン履歴のコマンドをコピーするPowerShellメソッド
-
PowershellでNTFSファイルシステムのパーミッションをクローンする
-
PowerShellによるパスワード難読化の例