HRR Co., Ltd.

技術的な記録を残していくことを目的としています。1次情報を大事にしています。

タスクバーからピン留めアプリケーションを削除する

はじめに

タスクバーにピン留めされているアプリケーションがあると思うんですが…
右クリックからの「タスクバーからピン留めを外す」を何度やっても、再起動したら復活するなんていうご経験はありませんか。

そんな頑固なピン留めを復活させない方法になります。

やり方

xmlファイルに定義されているものを、修正します。
場所はこちら。

  • フォルダ: %USERPROFILE%\AppData\Local\Microsoft\Windows\Shell
  • ファイル: LayoutModification.xml

アクセスするには、Winキー + rを押して、上記フォルダ名をコピペ→Enterキーを押すのが早いと思います。
編集前にコピーしてバックアップを取っておくといいと思います。

...
  <!-- タスクバーのピン留め設定 -->
<CustomTaskbarLayoutCollection>
      <defaultlayout:TaskbarLayout>
        <taskbar:TaskbarPinList>
        <taskbar:DesktopApp DesktopApplicationLinkPath="%ALLUSERSPROFILE%\Microsoft\Windows\Start Menu\Programs\Excel.lnk"/>
        <taskbar:DesktopApp DesktopApplicationLinkPath="%ALLUSERSPROFILE%\Microsoft\Windows\Start Menu\Programs\Word.lnk"/>
        <taskbar:DesktopApp DesktopApplicationLinkPath="%ALLUSERSPROFILE%\Microsoft\Windows\Start Menu\Programs\PowerPoint.lnk"/>
        </taskbar:TaskbarPinList>
      </defaultlayout:TaskbarLayout>
    </CustomTaskbarLayoutCollection>
</LayoutModificationTemplate>

ファイルの下の方に、こんな形で設定が書かれています。
必要なものだけ残して、不要な行は削除してファイルを保存しましょう。

そして再起動すれば、もう出てこないはず…。

終わりに

なぜこんな簡単には消えない仕様になっているのか…。
自分の好きなように設定をさせていただきたい…。

以上でした。

参考

Windowsのパスのショートカット的な文字列についてはこちらをご参照ください。

hrroct.hatenablog.com

GoogleドライブとEverythingの組み合わせがとても便利

はじめに

小ネタです。
Windowsのファイル検索ソフトのEverythingと、パソコン版Googleドライブを組み合わせると、Gドライブ配下も検索対象にできて便利です、というお話です。

推しポイント

  1. Webアプリに頼らずとも、Gドライブ内のファイル名検索が可能なところ。
  2. そしてGoogleドライブ上のファイル名から、Gドライブのファイルを探し出せること。

特に後者。GoogleドライブのURLを見てもGドライブ上のファイルパスへのアクセスが容易ではありませんが、ファイル名からファイルの場所が検索可能になります。
(逆は可能なんですが…)

Everything

www.voidtools.com

有名なWindowsのファイル検索ソフトです。
一番最初の起動が重いですが(INDEXを作成してるため、だったはず)、それ以降はとてもさくさくとWindows内にあるファイルを検索することが可能です。

Googleドライブ

support.google.com

プライベートではあまり使わないのですが、会社で導入してたりすると効果はバツグンです。

設定の仕方

メニューの「ツール」→「オプション」からオプション画面を開くことができます。
下記添付画像の設定にて、Gドライブを追加してあげればOKです。

オプション画面

またINDEXを作ることになるので、最初こそ重いですが、それ以降はサクサクGoogleドライブ内のファイル名検索ができるようになります。

ちなみに

ちなみにWSL2のフォルダを指定しようとしたら、ダメでした。\\wsl$を入力してみた結果です。

ダメと言われた

こちらは関連記事です。

hrroct.hatenablog.com

終わりに

GoogleドライブはWeb版の検索機能も優秀だと思っており、ファイル内部の文言も拾って検索してくれます。
ファイル名検索とは使い分けかなと思ってます。Windowsで、Excelで開きたいファイルがあったりしますし。

以上でした!

Windowsの%APPDATA%などの文字列について

はじめに

エクスプローラーやWin + Rで入力が可能なショートカット的な文字列には「%APPDATA%」以外にもいろいろあります。
気になったので調べてみました。

正体

環境変数らしいです。
PowerShellの画面から、一覧を出力可能です。結構あります。

ユーザー名などの一部情報はXXXXXとして伏せております。

PS C:\> Get-ChildItem env:

Name                           Value
----                           -----
ALLUSERSPROFILE                C:\ProgramData
APPDATA                        C:\Users\XXXXX\AppData\Roaming
ChocolateyInstall              C:\ProgramData\chocolatey
ChocolateyLastPathUpdate       123$56789012345678
CommonProgramFiles             C:\Program Files\Common Files
CommonProgramFiles(x86)        C:\Program Files (x86)\Common Files
CommonProgramW6432             C:\Program Files\Common Files
COMPUTERNAME                   XXXXX
ComSpec                        C:\Windows\system32\cmd.exe
DriverData                     C:\Windows\System32\Drivers\DriverData
FPS_BROWSER_APP_PROFILE_STRING Internet Explorer
FPS_BROWSER_USER_PROFILE_ST... Default
HOMEDRIVE                      C:
HOMEPATH                       \Users\XXXXX
LOCALAPPDATA                   C:\Users\XXXXX\AppData\Local
LOGONSERVER                    \\HSG-AD2
NUMBER_OF_PROCESSORS           8
OneDrive                       C:\Users\XXXXX\OneDrive
OS                             Windows_NT
Path                           C:\Python39\Scripts\;C:\Python39\;C:\Windows\sy...
PATHEXT                        .COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC;.PY;.PYW;.CPL
PROCESSOR_ARCHITECTURE         AMD64
PROCESSOR_IDENTIFIER           Intel64 Family 6 Model 142 Stepping 12, GenuineIntel
PROCESSOR_LEVEL                6
PROCESSOR_REVISION             1234
ProgramData                    C:\ProgramData
ProgramFiles                   C:\Program Files
ProgramFiles(x86)              C:\Program Files (x86)
ProgramW6432                   C:\Program Files
PSModulePath                   C:\Users\XXXXX\Documents\WindowsPowerShell\Modules;C:\Program Files\WindowsPowerSh...
PUBLIC                         C:\Users\Public
SESSIONNAME                    Console
SystemDrive                    C:
SystemRoot                     C:\Windows
TEMP                           C:\Users\XXXXX\AppData\Local\Temp
TMP                            C:\Users\XXXXX\AppData\Local\Temp
USERDNSDOMAIN                  XXXX.YYYY
USERDOMAIN                     XXXX
USERDOMAIN_ROAMINGPROFILE      XXXX
USERNAME                       XXXXX
USERPROFILE                    C:\Users\XXXXX
windir                         C:\Windows
ZES_ENABLE_SYSMAN              1

詳細

Get-ChildItem

Get-ChildItemは名前の通りのコマンドで、ディレクトリに使えば配下の内容を出力してくれます。

learn.microsoft.com

env:

env:はドライブです。
エクスプローラーでは見えないですが、環境変数はenvドライブに入っているようです。個人的に衝撃でした。そんな管理の仕方なのかと。

上ではGet-ChildItemを使いましたが、下記のようにしても環境変数にアクセスが可能です。

PS C:\> cd env:\
PS Env:\>
PS Env:\> dir

まさにディレクトリとファイルの動きですね。

終わりに

たくさんありますが、現実的に使うものは限られそうですね。
APPDATA
LOCALAPPDATA
このへんは自分のユーザー名を隠しつつ、フォルダパスを書くことができるので、ブログを書くときや他の方への共有に便利ですね。

COMPUTERNAME
も使いどころがありそう。

以上、小ネタでした。

CakePHP3のORMで"AND (A OR B)"を2セット以上書く方法

はじめに

小ネタです。 CakePHP3でのORMでの書き方です。

WHERE A = B AND (C = D OR E = F) AND (G = H OR I = J)
のようにORを複数含んだ場合の書き方です。

マニュアルにはここまで記載がある

WHERE A = B AND (C = D OR E = F) でしたら、マニュアルにあるんですが…

https://book.cakephp.org/3/ja/orm/query-builder.html#advanced-query-conditions

$query = $articles->find()
    ->where([
        'author_id' => 3,
        'OR' => [['view_count' => 2], ['view_count' => 3]],
    ]);

OR部分をもう1つ追加したい場合はどうするか。

OR部分を2つ以上つけるには

$query = $articles->find()
    ->where([
        'author_id' => 3,
        [
            'OR' => [['view_count' => 2], ['view_count' => 3]],
        ], 
        [
            'OR' => [['id' => 2], ['id' => 3]],
        ],
    ]);

こんな形でOR部分を配列にして複数指定する感じになります。
配列のキー間がANDになるようなイメージです。キー名がORだと名前が重なるので、このような対応なのでしょうか。
キーを省いていますが、あえて付けると

$query = $articles->find()
    ->where([
        'author_id' => 3,
        0 => [
            'OR' => [['view_count' => 2], ['view_count' => 3]],
        ], 
        1 => [
            'OR' => [['id' => 2], ['id' => 3]],
        ],
    ]);

こんな感じです。

終わりに

ORMは個人的に書き方が予想できず、悩みがちです…。
ということで、主に自分用メモの回でした。

Gitでエスケープされた日本語ファイル名を正しく表示する方法

はじめに

ファイル名は極力日本語にしないほうがいいとは思いつつ…。
そういうケースに当たった場合のGitの設定についてのお話です。

結論

# コマンドは適用範囲に応じて変更いただく感じで
git config --local core.quotepath false
git config --global core.quotepath false

具体例

Before

$ touch テスト.md
$ 
$ git status
On branch main
Untracked files:
  (use "git add <file>..." to include in what will be committed)
        "\343\203\206\343\202\271\343\203\210.md"

After

$ touch テスト.md
$ 
$ git status
On branch main
Untracked files:
  (use "git add <file>..." to include in what will be committed)
        テスト.md

参照元(マニュアル)

$ git config --help
...
       core.quotePath
           Commands that output paths (e.g.  ls-files, diff), will quote "unusual" characters in the pathname by enclosing the
           pathname in double-quotes and escaping those characters with backslashes in the same way C escapes control characters
           (e.g.  \t for TAB, \n for LF, \\ for backslash) or bytes with values larger than 0x80 (e.g. octal \302\265 for "micro"
           in UTF-8). If this variable is set to false, bytes higher than 0x80 are not considered "unusual" any more.
           Double-quotes, backslash and control characters are always escaped regardless of the setting of this variable. A simple
           space character is not considered "unusual". Many commands can output pathnames completely verbatim using the -z option.
           The default value is true.
...

パスを出力するコマンド(例:ls-files、diff)は、パス名中の「普通でない」文字を引用符で囲みます。 パス名を二重引用符で囲み、Cが制御文字をエスケープするのと同じように、それらの文字をバックスラッシュでエスケープする。 (をエスケープするのと同じ方法で、パス名の "変わった "文字を二重引用符で囲んでバッ クスラッシュでエスケープします(例えば、"TAB "は \t、"LF "は ˶n、"バックスラッシュ "は˶n)。 を表す8進数)。この変数をfalseに設定すると、0x80より大きいバイトは "unusual "とみなされなくなる。 ダブルクォート、バックスラッシュ、制御文字は、この変数の設定に関係なく、常にエスケープされる。単純なスペース文字は "unusual "とはみなされない。多くのコマンドは、-zオプションを使ってパス名を完全にそのまま出力することができる。 デフォルト値はtrueである。

www.DeepL.com/Translator(無料版)で翻訳しました。
日本語は「普通ではない」ということか…w

終わりに

ちなみにgit addするときなどに日本語でファイル名を指定すれば、エスケープされていたとしてもファイルに対しての操作は可能です。
でも見た目でファイル名がわからないですし…こちらの設定をオススメします。

以上でした。