Muni Bus

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

2023-04-01から1ヶ月間の記事一覧

【SQL Server】Microsoft SQL Server 2019 Expressを使う

2023年4月時点でダウンロード可能。以下のページから日本語版をダウンロードする(SQL2019-SSEI-Expr.exe, 6.08MB)。 https://www.microsoft.com/ja-JP/download/details.aspx?id=101064

【PowerShell】変数の宣言を強制する

Set-PSDebugコマンドレットを-Strictオプションを付けて実行する。以下の3つのスクリプトを用意する。 psdebug1.ps1 Write-Host $s psdebug2.ps1 Set-PSDebug -Strict Write-Host $s psdebug3.ps1 Set-PSDebug -Strict $s = "" Write-Host $s それぞれ実行し…

【PowerShell】あるディレクトリ内のディレクトリ一覧を得る

Get-ChildItemコマンドレットの結果をパイプラインでWhere-Objectコマンドレットに渡してフィルターをかける。PsIsContainerプロパティはファイルであればFalse、ディレクトリであればTrueを返す。 PS > Get-ChildItem C:\Windows\Boot ディレクトリ: C:\Win…

【PowerShell】あるディレクトリ内のファイル一覧を得る

Get-ChildItemコマンドレットの結果をパイプラインでWhere-Objectコマンドレットに渡してフィルターをかける。PsIsContainerプロパティはファイルであればFalse、ディレクトリであればTrueを返す。 PS > Get-ChildItem C:\Windows\Boot ディレクトリ: C:\Win…

【PowerShell】ある年ある月に含まれる日数を取得する

PS > [DateTime]::DaysInMonth(2003, 1) 31 PS > [DateTime]::DaysInMonth(2003, 2) 28 PS > [DateTime]::DaysInMonth(2003, 3) 31 PS > [DateTime]::DaysInMonth(2004, 1) 31 PS > [DateTime]::DaysInMonth(2004, 2) 29 PS > [DateTime]::DaysInMonth(2004,…

【PowerShell】うるう年か否か判定する

DateTimeクラスのIsLeapYearメソッドを使う。 PS > [DateTime]::IsLeapYear(2023) False PS > [DateTime]::IsLeapYear(2024) True PS > for ($i = 1996; $i -le 2005; $i++) {[DateTime]::IsLeapYear($i)} True False False False True False False False Tr…

【PowerShell】ディレクトリ内のファイルの親ディレクトリを取得する

Get-ChildItemコマンドレットを使い、DirectoryプロパティのNameプロパティを参照する。 PS > (Get-ChildItem C:\Windows\Fonts\ms*.ttc).FullName C:\Windows\Fonts\msgothic.ttc C:\Windows\Fonts\msjh.ttc C:\Windows\Fonts\msjhbd.ttc C:\Windows\Fonts\…

【PukiWiki】アップロード可能最大ファイルサイズを大きくする

インストール直後のアップロード可能最大ファイルサイズは1,024KB(1MB)だが、これを増やす方法。以下の例では、PukiWikiは1.5.4、PHPは8.1.5。 PukiWikiのフォルダーにあるファイル「plugin/attach.inc.php」の以下の箇所の数値を修正する。ここで与えた値が…

【PowerShell】ディレクトリ内のファイルのフルパスを取得する

Get-ChildItemコマンドレットを使い、FullNameプロパティを参照する。 PS > Get-ChildItem C:\Windows\Fonts\ms*.ttc ディレクトリ: C:\Windows\Fonts Mode LastWriteTime Length Name ---- ------------- ------ ---- -a---- 2021/06/05 21:05 8990160 msgo…

【PowerShell】ディレクトリ内のファイルのファイル名を取得する

Get-ChildItemコマンドレットを使う。ファイル名だけ欲しければ-Nameオプションを付ける。Nameプロパティを参照しても結果は同じ。 PS > Get-ChildItem C:\Windows\*.exe ディレクトリ: C:\Windows Mode LastWriteTime Length Name ---- ------------- -----…

【PowerShell】フォルダーを開く

Invoke-Itemコマンドレットを使う。以下は「C:\Program Files」を開いた例。 PS > Invoke-Item "C:\Program Files"

【コマンドプロンプト】フォルダーを開く

startコマンドで開きたいフォルダーを指定してエクスプローラー(explorer.exe)を起動すればよい。エクスプローラーはWindows本体が格納されている、基準となるフォルダー(通常はC:\Windows、環境変数windirに格納されている)に置かれているため、それを…

【PowerShell】パイプライン利用による繰り返し処理の高速化

次の3つのスクリプトは、C:\Windows\System32以下のすべてのファイルとそのファイルサイズを一覧形式でCSV形式のファイルに出力するスクリプトである。それぞれ全く同じ結果が得られる。 1番目(mc1.ps1)は、ファイルの一覧を変数にすべて格納し、その後、…

【PowerShell】テキストファイルの一括読み込み

3通りの方法がある。 Get-Contentコマンドレットを使う Get-Content変数構文を使う System.IO名前空間のFileクラスのReadAllTextメソッドを使う 1と2は行単位で読み込むが、3は文字単位で読み込む。読み込み速度は早い順に3,2,1。以下はサイズが300万バイト…

【PowerShell】サイズが非常に大きなテキストファイルを簡単に作成する

動作確認でサイズが非常に大きなテキストファイルが必要なときがあるが、PowerShellでは文字リテラルに*演算子を使うことで、簡単に作成することができる。 以下の例ではWindows環境下においてサイズが5億バイト(≒477 MB)のファイルを、パイプラインを使…

【PowerShell】コマンドラインで次の行にも続けて入力をする

行の最後に「`」(グレーブアクセント)を入力して改行する。 PS > Write-Output ("ABC" + "123") ABC123 PS > Write-Output ("ABC"` >> + "123") ABC123

【PowerShell】エスケープシーケンスを行う

エスケープシーケンス(画面上で普通に表記できずキーボードからも直接入力できない特別な意味を持つ文字の表記)を行うには、「`」(グレーブアクセント)記号と特定の文字を組み合わせて表現する。 文字列の改行を表記する場合、通常は「`r`n」と入力する…

【PowerShell】ファイル作成時のデフォルトの改行コード

PS > "ABC" | Out-File temp.txt PS > Format-Hex .\temp.txt パス: ○○○\temp.txt 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 00000000 FF FE 41 00 42 00 43 00 0D 00 0A 00 .þA.B.C..... PS > "あいう" | Out-File -Append .\temp.txt PS > Format-…

【PowerShell】ファイル作成時のデフォルトの文字コード

PowerShellにおけるファイル作成時のデフォルトの文字コードはUTF-16。Out-Fileコマンドレットで試してみる。 PS > "A1`nあい" | Out-File temp.txt PS > Format-Hex .\temp.txt パス: ○○○\temp.txt 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 000000…

【PowerShell】あるディレクトリ以下のファイルすべてを絶対(相対)パスで得る

絶対パスはGet-ChildItemコマンドレットとFullNameプロパティを使うことで簡単に得ることができる。相対パスはパイプラインで-Relativeオプションを付けたResolve-Pathコマンドレットに渡す。 PS C:\> Set-Location Windows PS C:\Windows> (Get-ChildItem -…

【PowerShell】ファイルのパスを絶対パス(相対パス)を得る

PS C:\> Set-Location C:\Windows\System32 PS C:\Windows\System32> (Get-ChildItem drivers\etc).Name hosts lmhosts.sam networks protocol services PS C:\Windows\System32> (Get-ChildItem drivers\etc).FullName C:\Windows\System32\drivers\etc\hos…

【PowerShell】オブジェクトの型を調べる

GetTypeメソッドを使う。FullNameプロパティに型の完全修飾名が含まれている。 PS > (1).GetType().FullName System.Int32 PS > (2.3).GetType().FullName System.Double PS > ("A").GetType().FullName System.String PS > (1..10).GetType().FullName Syst…

【PowerShell】テンポラリファイル(一時ファイル)を作成する

New-TemporaryFileコマンドレットを使う。使ったらファイル名が返されるのではなく、使った時点でサイズが0のファイルが作成される。このファイルは自動で消されないため、作業が終わったら、手動で削除する必要がある。 PS > $tempfile = New-TemporaryFile…

【PowerShell】文字列を特定の文字または文字列で分割する

RegexクラスのSplitメソッドを使う。最初の例ではStringクラスのSplitメソッドを使用しているが、分割の基準となる文字を1つしか指定できないため、うまくいかない。そのため、その次の例のとおりに、正規表現のパターンを「[\s]+」(1つ以上の連続した空白…

【PowerShell】文字列の前後の空白を取り除く

Trimメソッドは文字列の前後、TrimStartは前、TrimEndは後の空白を取り除く。 PS > $s = " Hello. " PS > "|" + $s.Trim() + "|" |Hello.| PS > "|" + $s.TrimStart() + "|" |Hello. | PS > "|" + $s.Trimend() + "|" | Hello.| これらのメソッドは、引数に…

【PowerShell】コマンドラインで自作関数を使用する

コマンドラインで関数を定義したスクリプトを呼び出せばよい。ただし、実行時には実行演算子(&)で呼び出すのではなくドットソースをすること。ドットソースをすることで、スクリプト内で定義された変数と関数は、そのスクリプト終了後も持続する。スクリ…