亀の甲羅2

今日もまた朝とく起きて励まなん窓に明るきありあけの月

powershell

powershell : ps2exe の使い方(コマンドライン)

ps1ファイルをExe変換するツール。GUIツールもあるが、powershellコンソールからも実行できる。 Invoke-ps2exeまたは、ps2exeを使用する。 Invoke-ps2exe -inputFile .\source.ps1 -outputFile .\target.exe -noConsole -noConsole は黒いコンソール画面を表…

powershell ファイル削除 (ゴミ箱未使用パターン / ゴミ箱使用パターン)

ゴミ箱未使用 Remove-Item -Path "hogehoge.txt" これは、いつも通り。 ゴミ箱使用 $shell = New-Object -ComObject "Shell.Application" $recycleBin = $shell.Namespace(0xA) $recycleBin.MoveHere("hogehoge.txt") NameSpace(0xA)の0xAは、ShellSpecialFo…

powershell 正規表現 最小マッチ(「.*」 を使ったときに)

.* を使うと任意の文字を0回以上繰り返す。置換などで正規表現を使う場合、思わぬところまでマッチしてしまうことがある。 最大マッチ、最小マッチの概念がある。 $str = "aaa-bbb-ccc.jpg" $str -replace "^.*-", "hoge-" # hoge-ccc.jpg(普通に.*を使うと…

powershell 配列同士の比較(差分取得)

$a = @("a", "b", "c"); $b = @("d", "b", "v"); Write-Host "---- same ----" $same = Compare-Object $a $b -IncludeEqual -ExcludeDifferent | Select-Object -ExpandProperty InputObject $same Write-Host "---- diff ----" $diff = Compare-Object $a …

powershell Linux のtail -f と同じようにファイル(ログ)監視をしてみる

ログ監視って結構使いますよね。Windowsではどうやるんだ?と思い調べてみた。 Get-Content -Path xxxx\hogehoge.log -Wait -Waitをつけると、監視モードになり、hogehoge.logが更新されるとその差分がターミナル上に追記されていく。 動きの速いログでない…

powershell メッセージボックスを表示する

一番単純なメッセージボックスは下記の通り。デフォルトでOKボタンは表示される。 Add-Type -AssemblyName System.Windows.Forms [System.Windows.Forms.MessageBox]::Show("I Love you so ...") Showメソッドを調べれば、引数はほかにもある。 Add-Type -As…

powershell sleepしたい Start-Sleep

Start-Sleep -Milliseconds 1000 これで1秒スリープする。 Bingちゃんが教えてくれた。

powershell ランダムな数字を生成する Get-Random

$random = Get-Random -Minimum 50 -Maximum 1000 50~1000までのうちでランダムな数字を返却してくれる。 Bingちゃんが教えてくれた。

poweshell 入力フィールドを持つGUIウィンドウを作成する(Bing)

Bingに作らせてみた。BingAIは指示代名詞が使えるので、簡単な質問から始めて徐々に深化させて要求する答えを導くことができる。なかなか使える。 powershellでGUIウィンドウを表示するスクリプト サンプルスクリプト 上記に入力フィールドとOKボタンを追加…

powershell 例外処理とexit

通常、powershellでexit 0 が正常終了、0以外が異常終了となる。 終了コードは「%errorlevel%」環境変数に格納されるため、PowerShellスクリプトを実行した後、echo %errorlevel%と記述して終了コードを表示できる。 powershellスクリプト側はこんな感じ。 t…

powershell 特定のファイル名のみ削除

これも定型パターンでしょう。 今回は拡張子でパターンを指定してみた。(-Filterはワイルドカード指定っぽい) $directory = "C:\hogehoge" Get-ChildItem -Path $directory -Filter *.jpg2 -Recurse | ForEach-Object { Remove-Item -LiteralPath $_.FullN…

poweshell 特定のパターンに合致しないファイルのみを削除する

もう、これは定型パターンでしょう。 $path = "C:\hogehoge" $pattern = ".*_noExif.jpg" Get-ChildItem -Path $path -Recurse | Where-Object { $_.Name -notmatch $pattern } | Where-Object { !$_.PSIsContainer } | %{Remove-Item -LiteralPath $_.FullN…

MS Bing にpowershellのスクリプトを作らせてみた

Bing がなかなかできるやつだと聞いたので、ちょっとお試ししてみた。 「powershellで画像のExif情報を削除するスクリプトを作成して下さい。」 で、Bingちゃんがくれた回答が下記の通り。まだ動作確認してないけど、直感でこれはイケてるって思えるコード。…

powershell 正規表現で複数行にわたってパターンマッチさせたい(「単一行モード」)

Ride with GPSでエクスポートしたgpxファイルがGarmin etrex20(英語版)で認識できなかった。 やりたいこと Ride with GPSでエクスポートしたgpxファイルをGarmin etrex20(英語版)で認識できるgpxファイルに加工したい。 1.問題点 Ride with GPS からエ…

powershellサンプル ファイルだけ一カ所に集めるスクリプト

ファイル整理の際に 複数のフォルダに分かれている(数が多い) フォルダが深すぎる、多分岐すぎる みたいなことがあると、非常に面倒。 「とりあえず全部1つのフォルダにまとめちゃえ!」方式のスクリプト例。 # 適宜変更のこと。外部からCALLするようなこ…

powerhell カギ括弧付きのファイルをファイル名変更(もしくは移動)

ファイル名に[] (カギ括弧)があると、Move-Itemがうまく動作しないことに気が付いた。 powershell ISEなどでオプションのサジェストには表示されないが「-LiteralPath」が使えるようだ。 PS > Move-Item -LiteralPath [aaa]aaa.txt ccc.txt PS > ls ディレ…

powershell タスクスケジューラ 「タスクの実行時に使うユーザー アカウント」の確認

とあるタスクのこの部分(タスクの実行時に使うユーザー アカウント)をpowershellで確認してみた。 ・例として、タスクパス=\ の「My Backup Task」というタスクについて確認してみる。 (管理者権限のあるpowershellターミナルから実行している) PS > ((…

powershell 任意の文字を消し去る -replace(置換、正規表現)

任意の文字(文字列)を消し去りたい場合、SubStringで切り出すのもいいけど、置換した方が手間がない。 (場合によるけど) $b = "プロパティ9[ううううう]" (($b -replace 'プロパティ9','') -replace '\[','') -replace '\]','' 実行結果 ううううう 正…

Powershell Select-String (いわゆるGrep)

ファイルからGrepする方法の基本。 データファイル データファイル:data.txt データファイル プロパティ1[ラーメン] プロパティ2[晴れ] プロパティ3[2023/4/15] プロパティ4[伊藤博文] プロパティ5[犬養毅] プロパティ6[ABC] プロパティ7[あああああ…

powershell : タスクスケジューラでpowershellを直接CALLすると青い画面が出る問題

powershell : 決まった時間にシャットダウンするタスク(1回だけ) - 亀の甲羅2 で書いた通り、タスクスケジューラからpowershellを(直接)CALLすることができた。でも、青い画面が一瞬見える。それがウザい。 Powershell コラム:タスクスケジューラによ…

powershell : 時間のかかるコマンドレットでプログレスバー(進捗)を表示させない

Compress-Archiveとかそこそこ時間がかかるコマンドを実行するときにプログレスバー(緑色)が表示されるのがウザかった。 $progressPreference = 'silentlyContinue' という魔法の呪文を唱えるだけでいい。 1. 自動変数でプログレスバーを表示させない #現…

powershell : 決まった時間にシャットダウンするタスク(1回だけ)

シャットダウンを指定時刻に行いたい。 cronやatコマンドがないWindowsでどうやるのか調べてみた。まだまだ不便だなぁ。 タスクスケジューラ+シャットダウンコマンド実行で実現する。 1. シャットダウンコマンド(powershell) シャットダウン $ stop-compu…

powershell :外部プログラムを実行するサンプル

外部プログラムをpowershellから実行するには、Start-Processコマンドレットを使用する。 サンプル ffmpegで動画を圧縮する。 面倒なのでffmpegのパスを通すことはせず、set-Location (cd)で直実行としている。 $path ="D:\Downloads\ffmpeg-2022-08-25-gi…

【編集中】PowerShell PowerShellでExcelファイルを操作する方法

1.はじめに いまさら PowerShellでExcelファイルを操作する方法 | 非IT企業に勤める中年サラリーマンのIT日記

【編集中】PowerShell PowerShellでVisual Basicの組み込み関数を利用する

1.はじめに PowerShellでVisual Basicの組み込み関数を利用する − @IT

【編集中】PowerShell ファイルプロパティの操作

1.はじめに PowerShellをはじめよう ~PowerShell入門~: PowerShellで詳細プロパティの値を取得する

PowerShell でExcelのボタンに紐づけられたマクロを実行する方法 (「ボタンを押す」と同義のこと)

1.環境 PowerShellのバージョンは以下の通り。 PS C:\Users\hisabo> $PSVersionTable Name Value ---- ----- PSVersion 5.1.18362.752 ・・・以下、略・・・ Excelはよくわからないけど、Office365って書かれている奴。 2.はじめに Qiitaや技術系ブログ…

PowerShell 文字列をコマンドとして実行する Invoke-Expression

1.はじめに 実行したいコマンドレットを文字列として作り込んでから実行する方法を調べてみた。 2.環境 PowerShellのバージョンは以下の通り。 PS > $PSVersionTable Name Value ---- ----- PSVersion 5.1.18362.752 ・・・以下、略・・・ 3.目指すと…

Windows PowerShell ISEでスクリプトをデバッグしたいが、実行ポリシーエラーになるときの対処

1.はじめに テキストエディタで作成したPowerShellスクリプトをデバッグしようと、Windows PowerShell ISEで開いてみた。ブレークポイントを張って、F5キーで開始してみたところ、以下のようなメッセージが表示されデバッグが出来なかった。 PS C:\temp> C…

PowerShell grepみたいなコマンドレット3つ

1.はじめに Linuxユーザならgrepってかなりの頻度で使うのではないでしょうか? パイプでつなげて、コマンド結果からほしい情報だけを絞り込むために使うと思う。 Get-Aliasの実行結果は以下の通りだが、これのcatに関する情報だけをgrepしようと考えた。 …