powershell

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

godexcel.cmd C3 AA30 tmp.xls ./GodExcel.cmd という感じで実行すると、神 Excel「tmp.xls」の C3~AA30 の領域に、自分自身(GodExcel.cmd) の内容を展開して という感じになる。 つ GodExcel.cmd @set args=%* @powershell "iex( (@('','','')+(cat '%~f0'|…

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 を使わね…