投稿

決定版 Edgeでローカルファイルを開く パワーシェルスクリプト (ウインドウズでドロップレット)

Quick Edit Pencil
Edgeで開きたいファイルを、ドロップか送るかして開きます。

次のパワーシェルコマンドを任意の場所に保存します。

便宜上、C:\エッジで開く.ps1 にして保存します。

#テスト実行用のパス
#$args = "C:\test.html"

# 未指定の実行を防止
if(!$args){Write-Error "ファイルが指定されていません。送るかドロップしてください。"; exit}

# 単独ファイルの他フォルダがドロップされたらパス配下のファイルも取得(サブフォルダーも含む)
$target = Get-ChildItem $args -recurse -Include *.html, *.txt, *.mp4 | Select-Object | Where-Object {-not $_.PSIsContainer}

#ループ処理してEdgeで開く
$target | ForEach-Object {
  start shell:AppsFolder\Microsoft.MicrosoftEdge_8wekyb3d8bbwe!MicrosoftEdge $_
}

次に、保存したエッジで開く.ps1 を右クリックしてショートカットを作成

作ったショートカットを右クリックしてプロパティを表示

リンク先に次を入れて保存

C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -ExecutionPolicy RemoteSigned -File "c:\エッジで開く.ps1"

以上でドロップレットの完成です。

任意のhtmlファイルなどをショートカットにドロップするとエッジでローカルファイルが開きます。

尚開くファイルの種類を拡張子で指定できます。コマンド中のGet-ChildItemしている箇所のIncludeに追加します。

さらに便利に、エッジで開きたいファイルを右クリックしてエッジに送る方法です。


スタートボタンで右クリック>ファイル名を指定して実行

shell:sendto

して送る場所を開いて、さっきつくったショートカットを移動

これで、開きたいファイルから 右クリック>送る>エッジで開くをすればローカルファイルをエッジで開くことが出来ます。

連想配列を検索してインデックスを返す

Quick Edit Pencil
とりあえず

json.feed.entry.filter.id.$tの文字列に含まれるpostid を取得するケース
var postid = 1;
var new;
json.feed.entry.filter(function(item, index){
  if (RegExp(postId).test(item.id.$t)) {new = index;}
});
console.log( new );

Windows10: 外付けUSキーボードの配列設定と日本語切り替え、IME左右Altキーでストレスフリー

Quick Edit Pencil
こういうケース

(2021年の夏、出来事)Windows10 1809以降ではこの設定が効かなくなっているらしいリンク

日本語配列のノートパソコンでUSB英語配列キーボードを使う場合


ノート本体の日本語キーボードは日本語配列のままで、つないだ英語キーボードは英語配列として認識させる

解決策Step1 キーボード配列正常化 ステップ1

1-1 外付けキーボードが一つでUS配列しか使わない場合に有効です。
※外付けキーボードはすべてUS配列で認識されます。


  1. レジストリエディタで「LayerDriver JPN」を検索
  2. 値を「kbd106.dll」から「kbd101.dll」に変更し再起動

1-2 配列の異なるキーボードごとに配列を固定したい場合は次の記事を参照

再起動後、正しく認識されない場合は次のステップも試みる

解決策Step2 キーボード配列正常化 ステップ2

ウインドウズ設定から英語米国の言語を追加し後順位として設定
オプションでキーボード配列が選べるようであれば英語配列を選んでおく

参考にした記事


英語配列キーボードで日本語切り替えをカスタマイズ

スペースキー左右のAltキーで入力切り替え
右Altは日本語
左Altは半角英数

AutoHotkeyのコマンドファイルで実現します
AutoHotkey - ウィキペディア

alt-ime-ahk
Releases · karakaram/alt-ime-ahk · GitHub

exeファイルの提供もあります。

ソースコードをダウンロードして実行する方法もあります。

参考記事
英語キーボードで英語/日本語入力を切替えるWindowsアプリ「Alt-ime-ahk」 – カラバリ
英語キーボードの [Alt] キーで日本語入力切替 – ありふれた備忘録


MSエッジのブックマークにブックマークレットを新規登録

Quick Edit Pencil
  1. 空のブックマークを新規登録できないので、
  2. 適当なサイトをブックマークに登録して、
  3. 右クリックして名前とURLを編集する

わざわざブックマークをインポートする必要はない。

chromeで正常に動作するブックマークレットがedgeでは動作しない場合がある。

メルカリ 領収書に添付する購入明細を印刷するブックマークレット

Quick Edit Pencil
PCから任意の取引画面をプリントする

この際、コメント欄他が不要なのでブックマークレットで非表示にしてプリントする


//メルカリ購入明細印刷最適化ブックマークレット

javascript: var elms = new Array( );
elms.push(document.getElementsByClassName("campaign-banner")[0]);
elms.push(document.getElementsByClassName("l-content")[0]);
elms.push(document.getElementsByClassName("app-banner")[0]);
elms.push(document.getElementsByClassName("global-footer")[0]);
elms.push(document.getElementsByClassName("footer-sell-btn")[0]);
for (var i = 0; i < elms.length; i++) {
    elms[i].setAttribute("style", "display:none;");
}

Windows で ファイル名を一括変更

Quick Edit Pencil
Windows10 標準のPowerShellを使い フォルダー名、ファイル名を一括変更

## 対象のパス
$PATH = "E:\OneDrive - Business\OSXからコピー"

## 変更前の文字
$strOldChar = ","

## 変更後の文字
$strNewChar = "_"

## ファイルのみ、フォルダのみ、隠しファイルのみを対y層絞る場合は次のオプションをGet-ChildItemに指定
## -File、-Directory、-Hidden

$TARGET = Get-ChildItem $PATH -Recurse -include *$strOldChar*

$TARGET

$TARGET | Rename-Item -NewName { $_.Name -replace $strOldChar,$strNewChar }

古いMacOSXのファイルをウインドウズにコピーしてOneDriveアップしたらファイル名にエラーが出たのでファイル名規則から外れる文字を置換します

エラーが出たら都度対処する方法をとりました

はじめてつかう場合はとりあえずテストするほうが安全でしょう

ファイル名に使用できない文字列が含まれていないか調べる - .NET Tips (VB.NET,C#...)

文字列から指定した文字を削除する - .NET Tips (VB.NET,C#...)

replace()の機能のまとめ!『正規表現、function()、arguments、RegExp()』:JavaScript - モーリーのメモ

Windows PowerShellのGetChildItemの基本機能、-File、-Directory、-Hiddenを2.0で実装します - 集中力なら売り切れたよ

PowerShell: get-childitemでフォルダのみ検索の注意点 | ヘニックスのライブ小屋

Powershellでファイル名の一括変換を行う

bookmarkletからクリップボードへ タイトルとURLリンク wordpress記事内リンク

Quick Edit Pencil
参考にした情報
WebページのタイトルとURLをワンクリックでコピーするBookmarklet - Qiita

ワードプレスの記事リンク生成に変更

//HTMLリンク作成ブックマークレット

javascript: var global = window;
global.COPY_TO_CLIPBOARD = global.COPY_TO_CLIPBOARD || {};
global.COPY_TO_CLIPBOARD.getUrlInfo = function() {
    var a = new String(document.title);
    a.allReplace = function(a) {
        var b = this,
            c;
        for (c in a) b = b.replace(new RegExp(c, "g"), a[c]);
        return b
    }.bind(a);
    return "<a href='" + document.URL + "' target='_blank' rel='noopener'>" + a.allReplace({
        ":": "\uff1a",
        "\\[": "\uff3b",
        "\\]": "\uff3d"
    }) + "</a>"
};
global.COPY_TO_CLIPBOARD.copyToClipboard = function() {
    var a = document.createElement("textarea");
    a.textContent = this.getUrlInfo();
    var d = document.getElementsByTagName("body")[0];
    d.appendChild(a);
    a.select();
    var b = document.execCommand("copy");
    d.removeChild(a);
    return b
};
global.COPY_TO_CLIPBOARD.copyToClipboard();


//リンク先管理エクセル用テキストとHTMLリンク作成

javascript: var global = window;
global.COPY_TO_CLIPBOARD = global.COPY_TO_CLIPBOARD || {};
global.COPY_TO_CLIPBOARD.getUrlInfo = function() {
    var a = new String(document.title);
    a.allReplace = function(a) {
        var b = this,
            c;
        for (c in a) b = b.replace(new RegExp(c, "g"), a[c]);
        return b
    }.bind(a);
    return a.allReplace({
        ":": "\uff1a",
        "\\[": "\uff3b",
        "\\]": "\uff3d"
    }) + "\t" + document.URL + "\t" + "<a href='" + document.URL + "' target='_blank' rel='noopener'>" + a.allReplace({
        ":": "\uff1a",
        "\\[": "\uff3b",
        "\\]": "\uff3d"
    }) + "</a>"
};
global.COPY_TO_CLIPBOARD.copyToClipboard = function() {
    var a = document.createElement("textarea");
    a.textContent = this.getUrlInfo();
    var d = document.getElementsByTagName("body")[0];
    d.appendChild(a);
    a.select();
    var b = document.execCommand("copy");
    d.removeChild(a);
    return b
};
global.COPY_TO_CLIPBOARD.copyToClipboard();


JavaScriptのワンライナーの難読コードを、改行付き可読コードに変換してくれるサービス
Online JavaScript beautifier