Skip to content

Instantly share code, notes, and snippets.

@advanceboy
advanceboy / Difference-between-literal-and-new.ps1
Last active May 19, 2016 15:54
PowerShell の hashtable (System.Collections.Hashtable) と @{} の シリアライズ時 の挙動の違い。
$a = @{}
$b = New-Object hashtable
$a['a'] = 1
$a['A'] = 2
$b['a'] = 1
$b['A'] = 2
$a
# Name Value
# ---- -----
@advanceboy
advanceboy / Update-TimeStampOnGitWorkingDirectly.ps1
Last active March 1, 2016 11:19
PowerShell 使って git diff で タイムスタンプを コミット時間 (commiter date) に変更する
git diff --name-only <commit> HEAD --diff-filter=CMART | gi | %{ $_.LastWriteTime = [datetime](git log --pretty=format:%ci --max-count=1 $_.FullName) }
@advanceboy
advanceboy / Dispose-Appmonster3-apks.ps1
Last active February 28, 2016 19:04
Android の apk バックアップアプリ appmonster3 で SDカード にリビジョンごとにバックアップされた *.apk ファイルたちから、 最古ファイルと log10 毎の最新ファイル 以外をすべて削除・整理する。
$apkfiles = gci D:\Android\data\com.think_android.appmanagerpro\files\appmonster3\backup\*\rev\*.apk
$deletedlist = New-Object System.Collections.Generic.List[string];
$apkgrp | %{
$targets = $_.Group
$filessorted = $targets | ?{ $_.Length -NE 0 } | sort { [long][System.IO.Path]::GetFileNameWithoutExtension($_.Name) };
$saved = @();
$saved += $filessorted | select -First 1;
$saved += $filessorted | group { [System.Math]::Floor([System.Math]::Log10( [long][System.IO.Path]::GetFileNameWithoutExtension($_.Name) )) } | %{ $_.Group | select -Last 1; };
$targets -notcontains $saved;
@advanceboy
advanceboy / Show-Hide-Test.cmd
Created December 17, 2015 17:28
Win32 API を呼び出して、 PowerShell のコンソールウィンドウを隠すテスト
start /MIN powershell -File "%~dpn0.ps1"
@advanceboy
advanceboy / firefox-pdfjs-to-clipboard-base64-png.js
Last active August 11, 2021 15:44
Firefox の pdf.js で 現在表示されている PDF ファイルを、 canvas を通じて PNG 画像の base64 に変換して、クリップボードに転送します。 変換したいページを、「右クリック」→「調査」 で ウェブ開発ツールを開き、インスペクターの場所はいじらないようにしながら、コンソールにコードを貼り付けて実行した後、ページ上でどこかをコピー(Ctrl+C)すれば、クリップボードに 画像の Data URI がセットされます。
(() => {
const baseElm = $0;
document.addEventListener('copy', (e) => {
e.preventDefault();
e.clipboardData.setData('text/plain', baseElm.closest('div.page').querySelector('canvas').toDataURL('image/png'));
console.log('png image copied!');
}, { once: true });
})();