プライベートや仕事で気づいたことやノウハウなどを書き留めるブログです

2017/10/16

Powershellで基本とか学ぶ感じの情報

0 件のコメント
題名の通りのWEBの情報を調べてみた。
いまいちWhereとかforeachとか使いかた分からん・・・。
というか基本が分からないので、そんなのが分かるページなど。

■Powershellとは何?
「よくやる繰り返し作業を省力化する便利ツール!」
または「コマンドプロンプトにパイプライン処理が付いて.NET Frameworkが使える」ツール。
正解ではないけど入り口はこれだと思うので。


■はじめての文法とかのリファレンス
プログラミング初心者に解説無しのPowrshell無理と思います。
でも、何かやった経験があるならオンラインの情報だけで使えるようになるはず!

文法を一覧できてすごく便利!というかこれだけでもいけると思う!
PowerShell基礎文法最速マスター 牟田口大介 様
http://winscript.jp/powershell/202

そのほかの初めての人向け情報。
PowerShell 使い方メモ opengl-8080 様
https://qiita.com/opengl-8080/items/bb0f5e4f1c7ce045cc57

PowerShellの基本(前編) atmarkit 様
http://www.atmarkit.co.jp/ait/articles/0708/30/news137.html


■学ぶために何から始めればいいの?
たぶん最初は「いろいろなファイル名の表示」が良さそう。
Powerhshellを起動して「cd c:\tmp」ってやるとc:\tmpに移動します。
それから「ls」って打つとファイル名やフォルダ名とかいろいろと表示されます。
※lsもdirもGet-ChildItemも同じです。エイリアスと呼ばれるやつ。


dir /b に相当するコマンドは? 牟田口大介 様
http://winscript.jp/powershell/24

あと「ren」がファイル名の変更です。
例えば、ファイル名を名前順の連番に変更するスクリプトはこちら。
短い中に効率良くいろんな要素が詰まっててすげえ勉強になりました。

ls -File | sort Name | % {$i = 1} { $name = "renban" +
$i.tostring("000")+$_.extension; ren $_ $name; $i++ }


大量のファイルをPowerShellのコマンドで一括リネームする しばたテックブログ様http://blog.shibata.tech/entry/2015/11/18/185108



■感想:変数とパイプラインで使い方は無限大。
手作業でやってたことが何でも省力化できます。
変数とパイプラインの使い方を覚えれば使える!
コマンドはオンラインを参照しながら少しずつ覚えよう。
基本を把握したら.NETを使おう。
たぶんGUIとかも使えるようになると便利っぽい。

個人的にはExcelのVBAよりも圧倒的に便利。
あとあ画像のサムネイル作る時とか。
連番でHTMLのソースコードを書いたりする時。


■番外:ウィンドウを開かずに実行する方法
自分でやる分には問題ないけど他人に渡すときはクリックだけで実行したい。
そういうときは下記のように同じフォルダのvbsで表示しないウィンドウで実行する方法があります。
でも、こんなのが勝手に動いたらセキュリティ的に良くないのでご注意を。
ローカルポリシーの設定によっては実行自体が弾かれたりもしますし。
Powershellは強力なだけ制限もたくさんあります。


本体.ps1
Set-ExecutionPolicy RemoteSigned -Scope Process #ポリシー変更


呼び出し.vbs
CreateObject("WScript.Shell").Run "powershell -WindowStyle Hidden -ExecutionPolicy Bypass -command .\本体.ps1" , 0


[

0 件のコメント :

コメントを投稿