標準愚痴出力

個人的なIT作業ログです。もしかしたら一般的に参考になることが書いているかもしれません(弱気

powershell

PowerShell で GitHub Releases のダウンロード数を確認する

前回 チラ見せしていた、Gitレポジトリの releases ページからのダウンロード数を確認する PowerShell スクリプトの完成形は以下のとおりである。カレントディレクトリのレポジトリの1番目のリモートブランチの releases にある各 assets にあるファイルとそ…

PowerShell で外部コマンドのからんだパイプラインと文字化け

PowerShell の練習で、GitHub の releases のダウンロード数を表示するコードを書いてみた。 $url = "https://api.github.com/repos/$owner/$repos/releases" curl $url | ConvertFrom-Json | ForEach-Object { foreach ($p in $_.assets){ Write-Host $p.na…

今週、書いた PowerShell スクリプト…

マイクラのワールド、FTPバックアップ汎用版 スクリプトの第一引数にワールド名をとるようにした 引数が無い場合はワールドのリストを表示する 古い PowerShell だと、パイプラインにバイナリを通せないので、PowerShell 7.4 未満の場合はエラーにする Backu…

Cargo.toml からバージョンを抽出する

Cargo.toml とは Rust のビルドツール cargo が読み書きするファイルで、パッケージについての情報が記述されている。配布用の zip ファイルを生成する際などに、ここからバージョンナンバーを自動で抽出できたら便利だ。 cargo metadata というコマンドで、…

htnblog.exe を改良した!

v0.6.0 を公開しています。詳細は release_note.md のとおりですが 複数のブログを選択できるようになった -1,-2,-3 のようにオプションで指定する 削除をサポート (htnblog delete) URL直指定や、@99 みたいに古い記事でも、編集可能に htnblog edit https:…

PowerShell 関係の環境整備

前回:PowerShell 7.4 でのパイプラインならパラレルで動いた。 - 標準愚痴出力 で、PowerShell 7.4 をインストールしたので、ついでに PowerShell 関係の環境を少し整えた。 キーバインドを Emacs 風に変更 PowerShell で Linux の shell っぽいキーバイン…

PowerShell 7.4 でのパイプラインならパラレルで動いた。

PowerShellのパイプラインは各外部コマンドをパラレルに実行しない - 標準愚痴出力 の続き。その後、 X(旧twitter)にて Xユーザーのmethaneさん: 「@NyaosOrg https://t.co/9hp4OiUUmR この試験機能を有効にした場合も並列にはしてくれないんでしょうか?」 …

PowerShell 5.1 のパイプラインは各外部コマンドをパラレルに実行しない

+(※追記:解決編あり → PowerShell 7.4 でのパイプラインならパラレルで動いた。 - 標準愚痴出力。 また、これにともない、タイトルを「PowerShellのパイプラインは各外部コマンドをパラレルに実行しない」から「PowerShell 5.1 のパイプラインは各外部コマ…

Go をバージョンアップする PowerShell スクリプト (1.14.5時点のページに対応)

※ (2020.07.16) 追記あり ※ (2020.07.19) Go 1.14.5 でのダウンロードページ変更に対応したスクリプトへ差し替え ※ (2020.07.19) GitHub に UP しました。 次の Go 1.15 に備えて: Go のダウンロードページをクロールして、最新の go*.windows-amd64.zip を…

nyagos の自動アップデート機能(まだ道半ば)

自動アップデート機能なんてものは nyagos 自身に組み込むべきではないので、別の実行ファイルにする。だが、Goで組むとすぐ数メガバイトいってしまって望ましくない。 ということで、PowerShell で試作してみた。 今のところ、ZIPをダウンロードしてくるだ…

PowerShell で .NET のアセンブリ内の関数の動作確認

HogeHoge.exe の中のクラス Config の shared メソッド Load を呼んでみる。 test.ps1: [reflection.assembly]::LoadFrom("bin\Release\HogeHoge.exe") $data = [HogeHoge.Config]::Load("hogehoge.xml") Write-Host("---") Write-Host($data.ToString()) Wr…

神Excel にテキストファイルを流し込むスクリプト書いたよー

(2019.04.19追記) Goで書き直した最新版は こちら godexcel.cmd C3 AA30 tmp.xls ./GodExcel.cmd という感じで実行すると、神 Excel「tmp.xls」の C3~AA30 の領域に、自分自身(GodExcel.cmd) の内容を展開して という感じになる。 つ GodExcel.cmd @set args…

PowerShell で、二つのフォルダーのファイル構成を比較するコマンドを作る

つ dirdiff.cmd @set "arg1=%~1" & set "arg2=%~2" @powershell "iex((@('','','')+(cat '%~f0' | select -skip 3))-join[char]10)" @exit /b %ERRORLEVEL% $md5 = New-Object System.Security.Cryptography.MD5CryptoServiceProvider function Get-MD5s($di…

PowerShell で書く、Go言語プログラムのリリース管理的なアレ(3)バージョン文字列の設定

バッチファイルの話もするとたいへんなので、以下 PowerShell だけという方向で: Go ソースへの埋め込み これは簡単で、 go build "-o" nyagos.exe -ldflags "$ldflags -X main.version=$version" だけでよい。これで main パッケージの version という変数…

PowerShell で書く、Go言語プログラムのリリース管理的なアレ(2)バージョン文字列の取得

方針としては リリースビルドの時は、テキストファイル(Misc\version.txt)に記載のテキスト スナップショットの時は、git describe --tags の結果 を使うことにしている。これはバッチファイルでも比較的簡単だ。 リリースビルドなら for /F %%I in (%~dp0Mi…

PowerShell で書く、Go言語プログラムのリリース管理的なアレ(1)目次

NYAGOS は 4.2.1 まではバッチファイルで、以下の作業を行っていた。 実行ファイルの作成 バージョン文字列の取得 リリース(make release)の時はテキストファイル(Misc\version.txt) スナップショット(引数なし make)の時は git describe --tags を使用 バ…

n番煎じの powershell 向け shebang !

PowerShell のスクリプトを実行しようとすると、実行ポリシーを一時的に変えるため powershell -ExecutionPolicy RemoteSigned -file HOGE.ps1 と長い起動コマンドラインになってしまいがちです。 ということで、HOGE.ps1 を実行するために、別途 HOGE.cmd …

PowerShell での項目の並べ方整理

コマンドを書く場合は「空白」で区切る。 関数・外部コマンドに関係なく、引数リスト全体を囲む「括弧」は要らない。 Write-Verbose -Message "$ go build" コマンドの引数に「式」を書いて評価させる場合は、その引数1個を「括弧」で囲む 囲まないと、個別…

ファイルサーバ名が変わったので、リンク切れした「お気に入り」を修復

Windows7のエクスプローラで出てくる「お気に入り」は、%USERPROFILE%\Links というフォルダーにショートカットが全部並んでいる。 PowerShell を使って全部リネームしよう、そうしよう。 $fromName = "\\旧サーバ名\" $toName = "\\新サーバ名\" $wsh = New…

Write-Host と Write-Output ではリダイレクトした時の改行コードが変わってしまう

(※ 2017.09.15追記: stknohg さんから、いろいろ技術的な補足をいただきました。詳しくはコメント欄を参照ください) Write-Host の出力を、PowerShell の呼び出し元でリダイレクトすると、改行コードが LF になる。 CRLF にするには Write-Output を使わね…