PowerShell

PowerShell

PowerShellによるExcel操作ーセルの値を取得ーサンプルコード(様々な取得)

この記事ではPowerShellでExcelから様々な形式で値を取得してみます。逆にExcelのセルへ格納する方法は別記事で紹介していますので、興味があればご覧いただければと思います。仕様下記のようなExcelファイルを用意して、PowerShellから様々な値を取得してみます。実行結果はページの一番最後にあります。画面上は結果しか見えませんが、B4には「=3+4」の数式、B5にはSUM関数が格納されています。編集先Excelファイルの格納先:C:\temp\powershellファイル名:Book2.xlsxシート名:Sheet1ソースコードソースコードを以下に示します。Excelから様々な値を取得して、Write-Hostで標準出力に出力してみます。ただし、エラー処理は本筋とは異なるため、このソースコード内では省略しています。readExcel.ps1$excel = New-Object -ComObject Excel.Application$book = $null$excel.Visible = $false$excel.DisplayAlerts = $false$cur...
PowerShell

PowerShellでExcel操作ーセルへ値を格納ーサンプルコード(様々な格納)

PowerShellでExcelへ値を格納できます。ただ、セルに普通に文字列を格納するサンプルはあちこちでよく見かけるのですが、手元で実行してみるとエラーになったり、数式や関数はどうやるんだ?というこということが多々あったので自ら試してみました。仕様下記のようなExcelファイルを用意して、PowerShellから様々な値を格納してみます。編集先Excelファイルの格納先:C:\temp\powershellファイル名:Book1.xlsxシート名:Sheet1※要は初期値のExcelファイルをCドライブに近いフォルダに置いた状態です。ソースコードソースコードを以下に示します。Excelへの様々な値入力を実行しています。ただし、エラー処理は本筋とは異なるため、このソースコード内では省略しています。writeExcel.ps1$excel = New-Object -ComObject Excel.Application$book = $null$excel.Visible = $false$excel.DisplayAlerts = $false$currentPath = "C:\t...
PowerShell

Windowsでダウンロードファイルのハッシュ値を求めるコマンドのメモ(PowerShell版)

コマンドをコピペできるように一覧化しました。以前書いたコマンドプロンプト版をPowerShell版に書き換えてみましたが、どちらでもいいかと思います。構文Get-FileHash -Path <ファイルパス> -Algorithm <アルゴリズム>※書き方は複数あります。アルゴリズム一覧アルゴリズム記述例SHA1Get-FileHash -Path httpd-2.4.54.tar.bz2 -Algorithm SHA1SHA256Get-FileHash -Path httpd-2.4.54.tar.bz2 -Algorithm SHA256SHA384Get-FileHash -Path httpd-2.4.54.tar.bz2 -Algorithm SHA384SHA512Get-FileHash -Path httpd-2.4.54.tar.bz2 -Algorithm SHA512MD5Get-FileHash -Path httpd-2.4.54.tar.bz2 -Algorithm MD5実行例ここでは下記のファイルのダウンロード結果の検証を例に、certutilコマンド...
PowerShell

PowerShell実行時の「このシステムではスクリプトの実行が無効」エラーを回避する方法について

PowerShellを実行すると「このシステムではスクリプトの実行が無効になっているため、ファイル XXX.ps1 を読み込むことができません。」エラーが出ることがあります。今回はその回避方法を見ていこうと思います。現象の再現コマンドからソースコードを実行すると下記の通りエラーが発生します。ソースコード下記のコマンドでソースコード「writeOutput.ps1」を実行します。コマンドpowershell -File "writeOutput.ps1"ファイル名:writeOutput.ps1# 文字列出力Write-Output "Hello,World!"実行結果PS C:\temp> powershell -File "writeOutput.ps1"このシステムではスクリプトの実行が無効になっているため、ファイル C:\temp\writeOutput.ps1 を読み込むことができません。詳細については、「about_Execution_Policies」( を参照してください。 + CategoryInfo : セキュリティ エラー: (: ) []、ParentContai...
PowerShell

長いログファイルを指定行数で分割するPowerShellのサンプルコード

長いログファイルを指定行数で分割するPowerShellのサンプルコードを紹介します。分割したらファイル名の後ろに連番を振ります。仕様今回作成するスクリプトの仕様を説明します。動作仕様下記のようなフォルダで考えてみます。ログファイルがいくつか存在していて、中にはファイルサイズが大きすぎて開けないことがよくあります。こんな時、とりあえず巨大ファイルを指定行数で分割しようというスクリプトを作成します。ソースコードソースコードは下記のとおりです。作業フォルダ、作成先フォルダ、分割行数はお好みに応じて調整してください。#作業フォルダ$workPath = "C:\temp\powershell\file\"#作成先フォルダ$generatedPath = "C:\temp\powershell\file\gen\"#取得対象ファイルの拡張子指定$extension = ".log"#分割行数$splitSize = 1000000#生成フォルダ作成New-Item $generatedPath -ItemType Directory#作業フォルダへ移動Set-Location -Path $w...
PowerShell

指定フォルダ以下の全ファイルのフルパスを取得するPowerShellコマンドコード

指定フォルダ以下の全ファイルのフルパスを取得する、PowerShellコマンド備忘録です。こちらの記事は以前コマンドプロンプト版で示したサンプルのPowerShell版です。コマンドターミナル上に表示する場合Get-ChildItem -Path C:\temp -Recurse * | Where-Object { ! $_.PSIsContainer } | ForEach-Object { $_.FullName }ファイルへ結果を出力する場合Get-ChildItem -Path C:\temp -Recurse * | Where-Object { ! $_.PSIsContainer } | ForEach-Object { $_.FullName } | Out-File -FilePath C:\temp\fileList.txt※1 c:\temp\test4はファイル一覧の対象のフォルダ解説下記のコマンドレットをパイプライン|で繋げて処理を実現していますコマンドレットパラメータ説明Get-ChildItem-指定したフォルダ内の項目を一覧表示します。-Pathディレ...
PowerShell

ログファイルを1ファイルずつ圧縮するPowerShellのサンプルコード

ログファイルを1ファイルずつ圧縮するPowerShellのサンプルを紹介します。ローカルの開発環境で日別のログファイルが溜まってきたときに、1ファイルずつ圧縮をスクリプトで一括でやりたいときに便利です。仕様今回作成するスクリプトの仕様を説明します。動作仕様下記のようなフォルダで考えてみます。日時別のlogファイルと、その他のファイルが雑多に混じっています。フォルダ内のlogファイルのみ1つずつ圧縮されます。ソースコードソースコードは下記のとおりです。$currentPathはlogファイルが存在するパスです。適当に変えてください。ログファイル圧縮.ps1$currentPath = "C:\temp\powershell\file\"#作業フォルダ移動Set-Location -Path $currentPath#フォルダのファイル一覧取得$items = Get-ChildItem * -File -include *.log#ファイルごとにループforeach ($item in $items) { #ログファイル名 $currentName = $item.Name #圧縮ファイ...
PowerShell

大量に格納されたファイルを拡張子ごとにフォルダ分けするPowerShellのサンプルコード

大量に格納されたファイルを拡張子ごとにフォルダ分けする、PowerShellのサンプルを紹介します。開発環境などで大量のファイルが溜まってきたときに、ファイルを整理するときに便利です。(例えば*.error、*.warning、*.info別に分けたいなど)仕様フォルダに格納されたファイルを拡張子ごとに、サブフォルダに格納します。実行イメージ下記のファイルの例だと、xlsxファイルが1つ、txtファイルが4つ格納されています。この場合、実行すると5つのファイルが、新規作成された年月日のフォルダ「xlsx」、「txt」へ割り振りされます。ソースコードソースコードは下記のとおりです。$currentPathは日付ごとにフォルダ分けしたいファイルが存在するパスです。適当に変えてください。拡張子ごとにフォルダ分け.ps1$currentPath = "C:\temp\powershell\file\"#作業フォルダ移動Set-Location -Path $currentPath#フォルダのファイル一覧取得$items = Get-ChildItem * -File -include *.lo...
PowerShell

ファイルを更新日付ごとにフォルダ分けするPowerShellのサンプルコード

大量格納されたファイルを更新日付ごとにフォルダ分けする、PowerShellスクリプトのサンプルを紹介します。仕様フォルダに格納されたファイルを更新日付ごとに、サブフォルダに格納します。実行イメージ下記のファイルの例だと、4/17のファイルが1つ、2/25のファイルが4つ格納されています。この場合は各ファイルが、フォルダ「20220417」、フォルダ「20220225」へ割り振りされます。ソースコードソースコードは下記のとおりです。$currentPathは日付ごとにフォルダ分けしたいファイルが存在するパスです。適当に変えてください。更新日付ごとにフォルダ分け.ps1$currentPath = "C:\temp\powershell\file\"#作業フォルダ移動Set-Location -Path $currentPath#フォルダのファイル一覧取得$items = Get-ChildItem -File#ファイルごとにループforeach ($item in $items) { #フォルダ名作成(年月日) $newFolder = $item.LastWriteTime.ToSt...
PowerShell

PowerShellで正規表現を使って、フォルダ内のファイル名を一括変換する方法を紹介

PowerShellと正規表現で、指定したフォルダにあるファイルの名前まとめて変換する方法を紹介します。仕様動作仕様Windows PowerShellでフォルダ内のファイル名を、全てまとめて変換します。ただし、様々なファイル名の形式にできてしまいますので、今回は以下の例題をもとに考えます。例題フォルダ構成c:\temp\test2の下に、下記のファイルが格納されているものとします。例題フォルダ内のファイル「test1_test0001_nnnn.txt」のうち、「test0001」の個所をまとめて「abc」に置き換えます。使用する正規表現下記の正規表現で、「test0001」の個所を検索します。(?<=^test1_)test{4}test1_で始まる個所から読み込んで「test+4文字の数字」のある部分を検索する正規表現です。※また、実は別にこんな凝った正規表現でなくとも、「test0001」でも十分なのですが、「test2_test0001_0002.txt」や「test1test0001_0002.txt」、「test1_test0001_test0001.txt」のようなファ...
《広告》