CMDとWin powershellの違い
CMDとpowershellはどちらもコマンドラインでの対話が可能で、バッチとpowershellスクリプトは機能的に同等である。
cmdをどう理解しているかはわかりませんが、以下はpowershellは.netがベースになっているので、.netの知識があれば何でもできるということです。
Windows PowerShell は、システム管理者向けに設計された新しい Windows コマンドラインシェルです。Windows PowerShell には、対話型プロンプトとスクリプト環境があり、これらは単独または組み合わせて使用することが可能です。
Windows PowerShell は、テキストを受け取って返す多くのシェルとは異なり、.NET Framework Common Language Runtime (CLR) と .NET Framework 上に構築されており、.NET Framework オブジェクトを受け入れて返します。この環境の根本的な変化は、Windowsを管理・設定するための新しいツールや方法をもたらします。
Windows PowerShellは、シェルに組み込まれたシンプルな単機能コマンドラインツールであるcmdlet(発音:コマンドレット)の概念を導入しています。Windows PowerShellには100以上の基本的なコアコマンドレットが含まれており、独自のコマンドレットを作成し、他のユーザーと共有することができます。
多くのシェルと同様に、Windows PowerShellは、コンピュータ上のファイルシステムへのアクセスを提供します。さらに、レジストリやデジタル署名付き証明書ストアなどの他のデータストアも、Windows PowerShellプロバイダを使用して、ファイルシステムと同様に簡単にアクセスすることができます。
簡単に言うと、Powershellはcmdのスーパーセットであり、cmdができることはすべてPowershellでもできるが、cmdができない多くの仕事をPowershellが追加でできる。
主に、システム管理機能、スクリプト言語、オンラインヘルプがより強力になっており、本当にcmdと同じように使うこともできますし、より深く学んで使うことも可能です
powershellの利点
できないことはない、考えるだけ。PowerShellを使えば、C/C++で書かれたDLLを読み込んで、中のコードを実行することもできますし、COMは言うに及ばず。PowerShellとcmdの最大の違い、そして他の*nix Shellとの最大の違いは、PowerShellのパイプが生の文字列ではなく.netオブジェクトを渡すことで、PowerShellのすべてが調和して共存できるため、魔法の扉を開くことができることだと私は思います。送ってくるデータが合法かどうか、送ってくるパラメータが正しい形式かどうか、推測する必要はありません。私たちは皆、豊富なメタデータを持つCLRを共有し、.netの世界を自由に歩き回り、探索することができるのです。ちなみに、Windowsのapt-getであるhttps://chocolatey.org/、PowerShellがベースになっています。
PowerShellが強力な理由
マイクロソフトは、非常に"ロープロファイル"会社、"少しソフトダウン"の意味を感じるようにMicrosoftという名前の、これは冗談です。Windowsオペレーティングシステムとオフィスソフトウェアは、非常に良い、マイクロソフトもそれをPowerOSとPowerOfficeに名前を付ける勇気なかったが、モナード(パワーシェルの前身)のリリース後2年間(2006)で、Microsoftは直接Windows PowerShell 1.0、及びquot;恥ずかしながら&quotというリリース このは少し控え目な表現です。
今日は、PowerShellがなぜ強力なのか、私の実体験をもとに少しまとめてみます。
<強い かつてない利便性
ストレージの計算におけるGB、MB、KB単位、配列宣言における1〜nと-1までの添え字の扱い、WYSIWYGで理解しやすい動詞と名詞の構成Cmdletなどです。
オブジェクト指向
オブジェクト指向は、プロセス指向よりも便利で実世界を記述しやすく、時代にキャッチアップしていると言えるでしょう。
.NETツリーとの連携
PowerShell は、.NET Framework プラットフォームの強力なクラスライブラリを使用することで、ほとんどすべてのことを可能にします。
強力な互換性
実行ファイル(exe)、バッチ bat、vb script など、Windows プラットフォーム上の他の呼び出しと完全な互換性があります。
プラットフォームベースの拡張性
マイクロソフトはアプリケーションというよりプラットフォームであることが強みですが、PowerShellも長い間プラットフォームであり、PowerShellがリリースされた翌年にはMicrosoft System Center Operations ManagerやSharePointがプラットフォームのコンポーネントを提供し、その後Office 365はもちろん、Active DirectoryやHyper-V、Windows Azureも提供されました。PowerShellは標準、仕様になっているのです。
使用例
PowerShellを初めて知った、ちょっと見てみたいという方のために、10の例をご紹介します。
[数学の計算] (39+79-51)*497/28 = ?
計算が速くできても、Enterキーを押すほどの速度はないはずです。
PS> (39+79-51)*497/28
1189.25
何日後とカウントするのは良いとして、何分後になったらどうするんだ?
$now=Get-Date
$day=[datetime]'2-14'
if($now -lt $day ){
$day.Subtract($now).TotalMinutes
}
else{
$day.AddYears(1).Subtract($now).TotalMinutes
}
[容量】 3GB > 3145726KB ?
PS> 3gb -gt 3145726kb
True
ID]はGUIDを生成できますか?
PS> [guid]::NewGuid()
Guid
----
0f283ab4-f402-400c-98ce-359442f11f1a
[ファイル】Windowsディレクトリにある実行可能なexeファイルのサイズはいくつですか?
dir $env:windir -Filter *.exe | measure -Sum Length
[Registry] レジストリパスHKEY_LOCAL_MACHINEの下にある'Enable64Bit'の値は何ですか。
(Get-ItemProperty -Path hklm:SOFTWARE\Microsoft\.NETFramework ).Enable64Bit
フィンガープリント [28DE15612AFF1CD69596AB17AF06AE86CB9C003B] の証明書 [certificate] は、証明書ストアにありますか?
ls Cert:\LocalMachine\My\ |
where { $_.Thumbprint -eq '28DE15612AFF1CD69596AB17AF06AE86CB9C003B' }
サービス]プリンターサービスは開始されましたか?
Get-Service spooler
[プロセス] 現在稼働しているIEのプロセスはいくつですか?
(Get-Process iexplore ).count
[Report] 実行中のすべてのプロセス情報を HTML レポートにエクスポートしますか?
Get-Process | ConvertTo-Html | Out-File a.html
powershellがどれだけ強力か分かっていただけたと思いますが、やはりWindowsプラットフォームではpowershellを使ったほうがいいでしょう。
関連
-
powershellで仮想マシンを作成する
-
ファイルサイズを一括で取得するPowershellコード
-
PowerShell 3.0 Hyper-V 3.0 の管理
-
PowerShellタイムロギングスクリプト
-
PowerShellでWin-Serverのパフォーマンスを詳細に監視する方法
-
サーバーの接続状態を監視するためのPowershellの実装
-
PowerShellでregularとValidateSetを使用してパラメータを検証する
-
PowerShellによる印刷ジョブのクエリと削除のコード例
-
PowerShellでWAVオーディオファイルを再生する
-
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音声電卓実装コード
-
PowerShell スクリプト ランダムパスワードジェネレータ (ps random password generator)
-
PowershellによるWindowsログのクエリ方法
-
PowerShellを使用して、現在のホストメモリ使用量と合計を取得する方法
-
PowerShellのエスケープ文字とは何ですか?
-
PowerShellで管理者権限でアプリケーションを起動する方法
-
PowerShell で .NET Framework を使用して、グローバルアセンブリキャッシュにアセンブリを追加する。
-
文字列中の大文字を検索するPowerShellの実装
-
PowerShell正規表現(Regex)の右から左へのマッチング方式のコード例
-
PowershellでWebページを開く例