Gobble up pudding

プログラミングの記事がメインのブログです。

MENU

Windows 10のスタートメニューの格納場所など

f:id:fa11enprince:20190926123426j:plain
しばらくWindows 8を使っていて、スタートメニューの格納場所を忘れてしまいましたのでメモ。
Windows 10に移行してから
ここにアンインストールしたはずのソフトのゴミが残っているので掃除。
一応レジストリ周りも見直しています。放置してもよいのだけれど。
あれれProgramDataだっけ?AppDataだっけになってしまっていました。
ProgramDataもAppDataもよくよく見るとゴミだらけになっていますね。
まぁ、別にいいんだけれども(;^ω^)

スタートメニューの格納場所

Windows 7と変わらず

C:\ProgramData\Microsoft\Windows\Start Menu\Programs

Explorer上のデフォルト表示では
PC(C:) > ProgramData > Microsoft > Windows > スタートメニュー > プログラム
です。
スタートメニューはユーザ個別ではなく、全ユーザで一緒です。

おまけ

Quick Launchの場所

C:\Users\[ユーザ名]\AppData\Roaming\Microsoft\Internet Explorer\Quick Launch

なんでInternet Exploererなんだろう……
そういえばいつだかIEとExplorerが合体してた時期がありましたね……。
Exploerer上でshell:quick launchでもOK

参考リンク

http://www.sicnet.co.jp/useful/faq/003.php
Windows 7/8/8.1にクイック起動を表示させる方法 - ぼくんちのTV 別館

Windows 10を使うにあたって絶対使ってはいけない機能があります。
デスクトップのスライドショーです。
奥さんにとがめられても知りません。
Windows 8のメトロUIでもありましたけど。
奥さんがいない上級者の方は私を含め、使っても大丈夫です。

特定のフォルダ以下で拡張子がmp3のファイルだけ残したい

f:id:fa11enprince:20200626231955j:plain
大掃除がてら音楽を整理していたら、
10年くらい前に持っているCDをmp3化したファイルがあって
歌詞が載っているリンクやhtmlのファイルが
ご丁寧に一緒に入っていました(;´・ω・)
htmlファイルとかどうでもいいからmp3ファイルだけ残したい。
しかし、まともに消していたら日が暮れる……
ということで、Windowsの場合Explorerから検索して消すっていう手もあるのですが、
あまり効率のいいやり方ではありません。

コマンドラインでやる方法を紹介します。
cdで対象のmp3以外を消したい一番上のディレクトリに移動しておきます。
その直下を再帰的にmp3以外のファイルを消しに行くコマンドです。

Unix系(Linux, Cygwinなど)、またはMac

消すファイルの確認

find . -not -iname "*.mp3" -type f

これで消そうとする対象のファイルをピックアップできます。
良さそうであれば消しにかかります。

削除実行

find . -not -iname "*.mp3" -type f -delete

これで消えてくれます。LinuxとMacはこれでいいのですが、
問題はWindowsです。Cygwinを入れている酔狂な人はそんなにいないでしょうから。

コマンドプロンプトの場合

無理!
むりやりバッチファイルでも作らない限り……

PowerShellの場合(Windows 7以降なら標準搭載)

消すファイルの確認

Get-ChildItem -Recurse -Exclude "*.mp3" | Where-Object { Test-Path $_ -PathType Leaf } | Remove-Item -WhatIf

削除実行

Get-ChildItem -Recurse -Exclude "*.mp3" | Where-Object { Test-Path $_ -PathType Leaf } | Remove-Item

PowerShellは長ったらしいですね。一応Get-ChildItemはls、Remove-Itemはrmに書き換えられますが……
にしても長い。ちなみにWhere-Object { Test-Path $_ -PathType Leaf }
ファイルだけっていう絞込みをしています。もっとスマートな方法がないものか……

しつこいようですが、ちゃんと目的のディレクトリにcdできたことを確かめて実行してくださいね!
でないと大事故になりますので(;^ω^)

はてなブログのサイドバーのカテゴリーの簡単カスタマイズ


はてなブログのサイドバーに設置できるカテゴリーのパーツいいのですが、
縦1列に並んで、非常に長くなっていやだ(´・ω・`)というのがあります。
カテゴリーが多くなると余計に長くなっていやだ。
ということで、ちょっとだけデザインを加えてカスタマイズしました。

適用前


なにこのカテゴリー長すぎ(´・ω・`)……

改造方針

inline-blockを使って、li要素を横に並ぶようにします。
あとはhoverを使ってマウスオーバーしたときにちょっと光るようにします。

コピペでデザインCSSに追加しましょう

下記のコードをデザインCSSに貼り付けます。

/**
 * サイドバーのカテゴリーモジュール
 */
div.hatena-module-category div.hatena-module-body ul li a {
    color : #ffffff;    /* 文字色 */
}
div.hatena-module-category div.hatena-module-body ul li {
    display: inline-block; /* 横並びに変更 */
    border-radius: 6px;
    line-height: 10px;
    transition: none;
    background-color: #8CB2A3; /* お好きな色に */
    margin-top: 0.5em; /* 要素の間隔調整 */
} 
div.hatena-module-category div.hatena-module-body ul li:hover {
    background-color: #9fc9b8; /* お好きな色に */
}

貼り付け場所はここ!

ここをクリックして……

ペタリ。
コメントを描いているところはお好きなように変更してください。
色見本はこのサイトが良いですよ。

適用後


カテゴリーが多くて根本的な解決にはなっていませんが、
縦に長い状態が解消されました。

参考にしたサイト

https://www.nxworld.net/tips/css-only-button-design-and-hover-effects.html
ここを見るともっとゴージャスなものができたりします。

お詫び

なんでかCSSの閉じの波かっこ(brace)が切れていました。修正いたしました。

Windowsのジャンクション(junction)とシンボリックリンク(symblic link)違い



2020-08-18更新 記載が間違っていたので修正しました。

概要

Windowsにはショートカットと似た機能のジャンクション(junction)とシンボリックリンク(symblic link)が存在します。
他にもハードリンクという機能がありますが、ほとんど使わないので無視します。

ジャンクションとシンボリックリンクはショートカットのようなものです。
ディレクトリとはフォルダのことです。
特に使うのはシンボリックリンクでプログラム等からフォルダを扱うときに便利だったりします。
ジャンクションはほぼ使わないですが、C:\Users\All UsersC:\ProgramDataへのジャンクションだったりします。

細かい違いはここに書いてあります。

ジャンクションとシンボリックリンクの違い

大まかな違いを簡単にまとめます

機能 ジャンクション シンボリックリンク
ファイルシステム NTFS NTFS
作成に必要な権限 一般ユーザー権限 管理者権限が必要
ファイルへのリンク ×
ディレクトリへのリンク
dirコマンド出力での表記 JUNCTION SYMLINK SYMLINKD
ネットワーク先へのリンク(*1) ×(ローカルのみ)
他マシンから参照(*2) ×
作成コマンド mklink /j mklink / mklink /d
エクスプローラの表示 アイコンに矢印 アイコンに矢印

ネットワーク先へのリンクについて

(*1)ネットワーク先へのリンクについては〇の場合UNCもZとかに割り当てたネットワークドライブも使えます。
マシンAがあったとして

マシンA
C:\Data> dir /a
  <DIR>            MyDataX

C:\Data\MyDataXは共有をしています。
このときマシンBでmklink /d [リンク] [ターゲット]で、

マシンB
C:\> mklink /d SharedLink \\マシンA\Data\MyDataX
C:\> dir /a
  <SYMLINKD> SharedLink [\\マシンA\Data\MyDataX]

とすればマシンBから、C:\SharedLinkでマシンAのC:\Data\MyDataXにアクセスできます。

他マシンから参照について

(*2)他マシンから参照についてはどういうことかというと、リンクの解釈は実際の使用時に(クライアント側が)行うということです。
マシンAのフォルダ(ディレクトリ)構成

マシンA
C:\Data> dir /a
  <SYMLINKD> MyDataA [C:\Data2\MyDataX]
  <SYMLINKD> MyDataB [C:\Data2\MyDataY]
  <JUNCTION> MyDataC [C:\Data2\MyDataZ]
C:\Data2> dir /a
  <DIR>            MyDataX (共有)
  <DIR>            MyDataY (非共有)
  <DIR>            MyDataZ (非共有)

C:\Dataは共有設定があるものとします。
C:\Data2\MyDataXは共有設定があるものとします。
C:\Data2\MyDataYは共有設定がないとします。
C:\Data2\MyDataZは共有設定がないとします。

こうなっていた時に、
マシンBから\\マシンA\Data\MyDataAを見たときにはマシンAのC:\Data2\MyDataXは見れます。
マシンBから\\マシンA\Data\MyDataBを見たときにはマシンAのC:\Data2\MyDataYを見に行こうとして
「ファイルが存在しません」となります。
マシンBから\\マシンA\Data\MyDataCを見たときにはマシンAのC:\Data2\MyDataZを見れるということです(共有していないにもかかわらず)。

どちらを使えばよいか

基本的にはシンボリックリンクを使っておけばよいです。

結論

特段事情がない限り、
ショートカット > シンボリックリンク > ジャンクション > ハードリンク
で使うのが良いかと思います。

参考