Powershell
PowershellからCOM経由でExcelにアクセスしたあと、各ワークシートの印刷設定(PageSetup)から、ページ枚数(Pages.Count)を取得できるので、それを合算してファイル毎のページ数を求めることができる。
Windowsキーのないキーボードを使っていたが、Windowsキーが欲しくなったので、既存キーをPowershellで割り当てる。 # CapsLock(00 1D)を左Win(E0 5B)のキーへ変更 Set-ItemProperty ` "Registry::HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyb…
ちょっと大量にフォルダやファイルを作りたいときの小ネタ。 Powershellで日時の文字列でフォルダやファイルを生成する方法。 # ファイル 1..10 | %{New-Item -ItemType File $(Get-Date).AddDays($_).ToString("yyyyMMdd")} # フォルダ 1..10 | %{New-Item …
小ネタ。Powershellでファイルをロックする方法。 System.IOのFileクラスを使ってファイルを開くことでロックをかける。 # Lock $file = [System.IO.File]::Open($filePath,[System.IO.FileMode]::Open,[System.IO.FileAccess]::Read,[System.IO.FileShare]:…
概要 Windowsのパス文字列を他の言語に渡す際、円記号(¥)もといバックスラッシュ(\)を毎回処理するのが面倒 エクスプローラなどのGUIメニューで選択するときにスラッシュ(/)を区切り文字とする標準的なパス文字列を取得したい。 Powershellスクリプトを作成…
概要 Powershell、Invoke-WebrequestのCredentialパラメータを使えば、簡単にBasic認証のかかったページにwebアクセスできる 実際 Invoke-WebRequest , Invoke-RestMethod で 基本認証 基本的に上記の通りCredentialを生成した上で、Invoke-Webrequesの-Cred…
特定のフォルダ配下に含まれるファイルの拡張子の一覧を取得するための方法のメモ Powershellを使ってファイルの拡張子を得るにはいくつか方法があって、例えばSystem.IO.Pathクラスを使う手もあったりするが、それよりはSystem.IO.FileInfoクラスを生成して…
Powershellのスクリプト・モジュールで正しくGet-Helpで読むことができるヘルプトピック(Help topic)を作る方法のメモ。 そもそもヘルプトピックとは? 要するにGet-Helpしたときに表示されるヘルプのこと*1。細かいことは詳しいヘルプ情報の取得 | Microsof…
環境 Invoke-RestMethod と ConvertTo-Json が必要なのでPowershell v3.0以降で動くはず 前準備 Authorization | Wunderlist Developerに従って以下のことをしておく WunderListへのアプリケーションの登録 Web Server Application Integrationに従って、ア…
なにも考えずにResolve-DnsNameする PS C:> Resolve-DnsName google.com Name Type TTL Section IPAddress ---- ---- --- ------- --------- google.com AAAA 204 Answer 2404:6800:4004:80f::200e google.com A 204 Answer 216.58.197.238 (≒nslookup) 単純…
昨日の「Hey, Scripting Guy」!*1を読んでいて知ったのだが、最新のPowershell*2ではローカルユーザーを管理できる。 実行環境 Microsoft Windows 10 Pro (10.0.14393) Major Minor Build Revision ----- ----- ----- -------- 5 1 14393 576 実際のコマンド…
範囲演算子(..)とパイプ(|)でループ処理のようなことができる 普通にループで書くなら以下のようになる。 #forループの場合 for ($i=0; $i -lt 10; $i++){ echo "hoge" } #foreachループの場合 foreach($cnt in 1..10){ echo "hoge" } でも下のほうがすっき…
Powershellでプリンタの状態(ステータス)を取得するにはPrintManagementモジュールのGet-Printerを利用すればよい。 必要な環境 Powershll 3.0 以降 実行例 Get-Printerコマンドレットで特定のプリンタ名を指定してでCIMインスタンス*1を取得し、PrinterStat…
技術面接で出された問題 - esm アジャイル事業部 開発者ブログ 上記のエントリを読んでPowershellだとどうやって実装するかなーと思ったので、テキトーに試す。 ソートだとこんな感じ?*1 [String]$a="ABCB" [String]$b="BCAB" if($a -eq $b){return $false}…
Copy-itemを使ったディレクトリコピーはコピー先に指定するディレクトリの有無に依存して挙動が変わってしまう。 面倒でもディレクトリコピーはしないほうが無難であり、コピー先フォルダを作成した上で、コピー元フォルダ以下をワイルドカードコピーすべき…
PowershellでARPテーブルを確認するときはGet-NetNeighborコマンドレットが使える 環境 PS C:\> #OSのVersion PS C:\> "$((get-wmiobject win32_operatingsystem).caption) ($((get-wmiobject win32_operatingsystem).version))" Microsoft Windows 10 Pro (…
主題の通り、Powershellを使用した設定ファイルの読み込んで変数に格納して使う方法のメモ。 日本語でググってもまとまった情報がないのでまとめる。 環境 PS C:\> #OSのVersion PS C:\> "$((get-wmiobject win32_operatingsystem).caption) ($((get-wmiobje…
こんな感じ(下記はMarkdownで書いた) Get-ChildItem -Path $dir -Verbose なおファイルタイプはps1の模様
普通にPSIsContainerプロパティを使えばよい #カレントディレクトリのフォルダだけを表示 > Get-ChildItem | Where-Object {$_.PSisContainer} #同じくファイルだけを表示 > Get-ChildItem | Where-Object {$_.PSisContainer} ちょっとした解説 PSIsContaine…
単純にUpdate-Helpコマンドレットでhelpを更新できる。 日本語ヘルプがないコマンドもあるため、むしろ英語のヘルプを導入しておくと便利。
PowershellのProfileにvimのエイリアス設定を追加すればOK #Profileの場所の確認 $PROFILE #以下のコマンドをProfileに記載する Set-Alias vim "<Vimのパス>" VimをインストールしてPowerShellから使用する | PowerShell from Japan!! Blog</vimのパス>
Powershell でWindowsOSのVersionを取得するには、WMIを利用して情報を取得する必要がある。とはいえ、参照するだけなので、そこまで難しくはない。 環境 もの 詳細 OS Microsoft Windows 8.1 Pro (6.3.9600) Powershell 4.0 実行例 PS > "$((get-wmiobject …
PowershellでWindowsの証明書情報を確認するには、証明書ストアを指定してGet-ChildItem(ailias:ls)を実行する。 > ls Cert:\ Location : CurrentUser StoreNames : {SmartCardRoot, Root, Trust, AuthRoot...} Location : LocalMachine StoreNames : {Trust…
サイコロのアナロジーで適当に乱数を作って分布を調べる。 >$test = New-Object System.Random >for ($i = 0; $i -lt 1MB; $i++){$test.Next() % 6 + 1 >> random.log } 結構時間がかかるので、途中(775997個)で中断したけれど、結果は以下の通り 出目 頻度 …
Powershellでプロパティにアクセスするとき、ネストが深くなるとアクセスできなくなるのだろうか。 #適当にWebAPIを実行して内容を取得 PS D:\> $test = Invoke-RestMethod -uri "http://ja.wikipedia.org/w/api.php?action=query&format=json&titles=WBC&pr…
いきなり出てくる「プロバイダ」、意味不明なので追加で調べた。
環境 種別 詳細 OS Windows 8.1 Pro Powershell(PSVersion) 4.0 結論 KB(キロバイト)からP(ペタバイト)までは、問題なく計算で使用できる。 EB(エクサバイト)以降とB(バイト)は使用できない。 PS > 1KB / 1024 1 PS > 1MB / 1024 1024 PS > 1GB / 1024 10485…
環境 Windows 8.1 Pro 作業概要 移動用のフォルダを作成し、そのフォルダに[ドキュメント]などの設定を紐づける。 作業内容 移動元のフォルダ名をもとに、移動先に同名のフォルダを作成する。 #移動先のフォルダを作成する。 $srcPath = <ドキュメント関連の…
環境 Windows 8.1 Pro 作業概要 Powershellの実行ポリシーを変更し、ローカル環境のスクリプト実行を許可する。 作業内容 デフォルト設定の実行ポリシー(Restricted/全てのスクリプトが実行禁止)を確認したのち、ローカル環境のスクリプトは実行できるポリシ…
PCを買い替えたので、以前使っていた英字レイアウトのキーボードをWindows 8.1 Proでも使用できるようにするために設定を行った。 環境 Windows 8.1 Pro 作業概要 キーボード関連のレジストリを書き換える*1。 作業内容 Powershellを使って、該当するレジス…