Muni Bus

パソコンの操作方法や設定方法を忘れないようにメモしています。ブログを一回引っ越ししているので、所々表示がかなり乱れています・・・

【make】makefileの例(複数のファイルから1つのファイルを作成する)

複数のファイルから1つのファイルを作成する場合の例。

upLaTeXでPDFファイルを作成する

元ファイル doc.tex docsub1.tex docsub2.tex
作成するPDFファイル doc.pdf

doc.pdf: doc.tex docsub1.tex docsub2.tex
     ptex2pdf -l -u $<

自動変数「$<」は、1行目の一番左に書いたものに自動で置き換わる。

【PowerShell】ディレクトリー(サブディレクトリー含む)からファイル名を指定してファイルを検索する

Get-ChildItemコマンドレットは、ファイル名を指定してファイルの検索を行うことができる。-Recurseオプションをつけると、そのフォルダーにある全てのサブディレクトリの中も検索する。

以下は、ディレクトリーC:\Windowsおよびそのサブディレクトリーから、ファイル名がnoteで始まりかつ拡張子がexeのファイルを検索した例。-nameオプションをつけることで、ファイル名のみが表示されるようになる。

PS > Get-ChildItem C:\Windows -include note*.exe -recurse -name
notepad.exe
System32\notepad.exe
SysWOW64\notepad.exe

【フォント】「メイリオ」と「Meiryo UI」

メイリオ

ClearTypeに最適化された画面上の見やすさを重視した日本語フォント。文字幅は全角幅(非日本語入力時に入力できる「A」や「1」などの英数字の2倍の幅)でデザインされているが、プロポーショナルフォントである。

 

Meiryo UI

メイリオ同様にClearTypeに最適化された画面上の見やすさを重視した日本語フォント。プロポーショナルフォント。UIとして多用されるひらがなやカタカナについて、狭い領域でも読みやすくなるように文字と文字の間隔などを調整したフォント。Windows 7から導入されたリボンインターフェースで文字を読みやすくするために導入された。

 

マイクロソフトによる、公式の情報は以下のページにある。
https://msdn.microsoft.com/ja-jp/library/windows/desktop/aa511282.aspx

【Windows PowerShell】ファイルの日付(最終更新日)を得る

Get-ItemPropertyコマンドレットを使用して得られるLastWriteTimeプロパティに、ファイルの最終更新日が格納されている。

PS > (Get-ItemProperty C:\Windows\explorer.exe).LastWriteTime
2018年7月6日 23:17:10
PS > (Get-ItemProperty C:\Windows\notepad.exe).LastWriteTime
2018年7月7日 5:56:52

このファイルの最終更新日は、変数に代入することもできる。

PS > $dt1 = (Get-ItemProperty C:\Windows\explorer.exe).LastWriteTime
PS > $dt2 = (Get-ItemProperty C:\Windows\notepad.exe).LastWriteTime

この日付は比較も行える。

PS > $dt1 -lt $dt2
True

【Windows PowerShell】ファイルからファイル名のフルパスなどを取り出す

ファイル名から、ファイル名のフルパス、ファイル名から拡張子を取り除いたもの、拡張子のみ、を取り出すには、Get-ChildItemコマンドレットによりファイルを取得して、そのFileInfoオブジェクトのプロパティを参照すると、簡単に取り出せる。

 

FullName
→ドライブ名や親ディレクトリ名も含める(いわゆるフルパス表記)

BaseName
→ファイル名から拡張子を(1つだけ)取り除いたもの

Extension
→ファイル名から拡張子だけ取り出したもの

 

以下は、カレントディレクトリに「aaa.txt」と「bbb.ccc.txt」という2つのファイルがある場合の使用例。

PS > Get-ChildItem -Name *.txt
aaa.txt
bbb.ccc.txt
PS > (Get-ChildItem aaa.txt).FullName
○:\○○\○○\aaa.txt
PS > (Get-ChildItem aaa.txt).BaseName
aaa
PS > (Get-ChildItem aaa.txt).Extension
.txt
PS > (Get-ChildItem bbb.ccc.txt).FullName
○:\○○\○○\bbb.ccc.txt
PS > (Get-ChildItem bbb.ccc.txt).BaseName
bbb.ccc
PS > (Get-ChildItem bbb.ccc.txt).Extension
.txt

Extensionプロパティの値は「.」(ピリオド)が先頭に付いていることに注意。

【Windows PowerShell】ファイルやディレクトリーの存在を確認する

Test-Pathコマンドレットを使う。存在すればTrueを、存在しなければFalseを返す。

PS > Test-Path C:\Windows
True
PS > Test-Path C:\Windows\notepad.exe
True
PS > Test-Path C:\Windows\notepadd.exe
False

-PathTypeオプションを使うことで、ディレクトリーとファイルの違いを判定することができる。-PathTypeオプションでContainerを指定するとコンテナー(ディレクトリーやレジストリキーのように要素を含むもの)、Leafを指定するとリーフ(ファイルのように要素を含まない要素自体)を指定することになる。Anyを指定すると、どちらでもよいとなる。

PS > Test-Path C:\Windows -PathType Container
True
PS > Test-Path C:\Windows -PathType Leaf
False
PS > Test-Path C:\Windows\notepad.exe -PathType Container
False
PS > Test-Path C:\Windows\notepad.exe -PathType Leaf
True
PS > Test-Path C:\Windows -PathType Any
True
PS > Test-Path C:\Windows\notepad.exe -PathType Any
True

Test-Pathコマンドレットを使うことで条件式を作成することができるため、このようにファイル等の存在を判定する。

PS > if (Test-Path C:\Win) { echo ある } else { echo ない }
ない

【PowerShell】エイリアスに割り当てられているコマンドを表示する

Get-Aliasコマンドレットを使用する。以下はMozilla Firefoxの実行ファイルにfireというエイリアスを割り当てた例。

PS > Set-Alias fire 'C:\Program Files\Mozilla Firefox\firefox.exe'

Get-Aliasコマンドレットで確認をしてみる。

PS > Get-Alias fire
CommandType Name Definition
----------- ---- ----------
Alias fire C:\Program Files\Mozilla Fir...

Get-Aliasコマンドレットでは、ウィンドウの右側にはみ出た分は省略されてしまうため、上記のように、エイリアスに割り当てたファイルのフルパスが長い場合は確認できない。このようなときは、プロパティDefinitionを表示すればよい。

PS > (Get-Alias fire).Definition
C:\Program Files\Mozilla Firefox\firefox.exe

【Firefox】検索した結果を新しいタブで表示する

インストール直後の設定では、ウィンドウ右上の検索ボックスに文字を入力して検索すると、現在開いているタブにその検索結果が表示される。新しいタブで表示するようにするには、以下のようにする。

  1. アドレスバーに「about:config」と入力してEnterキーを押す。
  2. タブが新しくなり、「動作保証対象外になります!」と表示される。中央下部の「危険性を承知の上で使用する」をクリックする。
  3. 設定名とその値などがずらりと表示される。設定名「browser.search.openintab」を検索する。
  4. 値が「false」になっているはず。これをダブルクリックして「true」に変更する。
  5. そのタブを閉じる。

【Windows PowerShell】定義されているエイリアスを確認する

Get-Aliasコマンドレットは、定義されているエイリアスに割り当てられているコマンドレットを表示する。

PS > Get-Alias echo
CommandType Name Definition
----------- ---- ----------
Alias echo Write-Output
PS > Get-Alias eecho
Get-Alias : name 'eecho' を含むエイリアスは存在しないため、このコマンドは一致す
エイリアスを見つけられません。
発生場所 行:1 文字:10
+ Get-Alias <<<< eecho
+ CategoryInfo : ObjectNotFound: (eecho:String) [Get-Alias]、ItemN
otFoundException
+ FullyQualifiedErrorId : ItemNotFoundException,Microsoft.PowerShell.Comma
nds.GetAliasCommand

初期状態では、Write-Outputコマンドレットにはechoというエイリアスが定義されている。定義されていないエイリアスを指定すると、上記のようにエラーを返す。

引数に何も与えないと、定義されているエイリアスを全て表示する。

PS D:\> Get-Alias
CommandType Name Definition
----------- ---- ----------
Alias % ForEach-Object
Alias ? Where-Object
Alias ac Add-Content
Alias asnp Add-PSSnapIn
Alias cat Get-Content
(以下、表示省略)

 

【Windows PowerShell】エイリアスを設定する

Set-Aliasコマンドレットを使用する。以下は、カレントディレクトリのファイルを表示させるGet-ChildItemコマンドレットにddirというエイリアスを割り当てた例。

PS > ddir
用語 'ddir' は、コマンドレット、関数、スクリプト ファイル、または操作可能なプロ
グラムの名前として認識されません。名前が正しく記述されていることを確認し、パス
が含まれている場合はそのパスが正しいことを確認してから、再試行してください。
発生場所 行:1 文字:5
+ ddir <<<<
+ CategoryInfo : ObjectNotFound: (ddir:String) 、CommandNotFound
Exception
+ FullyQualifiedErrorId : CommandNotFoundException
PS > Set-Alias ddir Get-ChildItem
PS > ddir
ディレクトリ: ○○
Mode LastWriteTime Length Name
---- ------------- ------ ----
(表示略)

設定したエイリアスを削除するには、Remove-Itemコマンドレットを使用する。

PS > Remove-Item alias:ddir
PS > ddir
用語 'ddir' は、コマンドレット、関数、スクリプト ファイル、または操作可能なプロ
グラムの名前として認識されません。名前が正しく記述されていることを確認し、パス
が含まれている場合はそのパスが正しいことを確認してから、再試行してください。
発生場所 行:1 文字:5
+ ddir <<<<
+ CategoryInfo : ObjectNotFound: (ddir:String) 、CommandNotFound
Exception
+ FullyQualifiedErrorId : CommandNotFoundException

エイリアスはPowerShellを起動する度に初期化されるため、Set-Aliasでエイリアスを設定しても、PowerShellを終了するとその設定は消えてしまう。PowerShell終了後も使用できるようにするためには、プロファイルに上記の「Set-Alias~」を記述する。