2023-04-01から1ヶ月間の記事一覧
2023年4月時点でダウンロード可能。以下のページから日本語版をダウンロードする(SQL2019-SSEI-Expr.exe, 6.08MB)。 https://www.microsoft.com/ja-JP/download/details.aspx?id=101064
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 それぞれ実行し…
Get-ChildItemコマンドレットの結果をパイプラインでWhere-Objectコマンドレットに渡してフィルターをかける。PsIsContainerプロパティはファイルであればFalse、ディレクトリであればTrueを返す。 PS > Get-ChildItem C:\Windows\Boot ディレクトリ: C:\Win…
Get-ChildItemコマンドレットの結果をパイプラインでWhere-Objectコマンドレットに渡してフィルターをかける。PsIsContainerプロパティはファイルであればFalse、ディレクトリであればTrueを返す。 PS > Get-ChildItem C:\Windows\Boot ディレクトリ: C:\Win…
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,…
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…
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\…
インストール直後のアップロード可能最大ファイルサイズは1,024KB(1MB)だが、これを増やす方法。以下の例では、PukiWikiは1.5.4、PHPは8.1.5。 PukiWikiのフォルダーにあるファイル「plugin/attach.inc.php」の以下の箇所の数値を修正する。ここで与えた値が…
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…
Get-ChildItemコマンドレットを使う。ファイル名だけ欲しければ-Nameオプションを付ける。Nameプロパティを参照しても結果は同じ。 PS > Get-ChildItem C:\Windows\*.exe ディレクトリ: C:\Windows Mode LastWriteTime Length Name ---- ------------- -----…
Invoke-Itemコマンドレットを使う。以下は「C:\Program Files」を開いた例。 PS > Invoke-Item "C:\Program Files"
startコマンドで開きたいフォルダーを指定してエクスプローラー(explorer.exe)を起動すればよい。エクスプローラーはWindows本体が格納されている、基準となるフォルダー(通常はC:\Windows、環境変数windirに格納されている)に置かれているため、それを…
次の3つのスクリプトは、C:\Windows\System32以下のすべてのファイルとそのファイルサイズを一覧形式でCSV形式のファイルに出力するスクリプトである。それぞれ全く同じ結果が得られる。 1番目(mc1.ps1)は、ファイルの一覧を変数にすべて格納し、その後、…
3通りの方法がある。 Get-Contentコマンドレットを使う Get-Content変数構文を使う System.IO名前空間のFileクラスのReadAllTextメソッドを使う 1と2は行単位で読み込むが、3は文字単位で読み込む。読み込み速度は早い順に3,2,1。以下はサイズが300万バイト…
動作確認でサイズが非常に大きなテキストファイルが必要なときがあるが、PowerShellでは文字リテラルに*演算子を使うことで、簡単に作成することができる。 以下の例ではWindows環境下においてサイズが5億バイト(≒477 MB)のファイルを、パイプラインを使…
行の最後に「`」(グレーブアクセント)を入力して改行する。 PS > Write-Output ("ABC" + "123") ABC123 PS > Write-Output ("ABC"` >> + "123") ABC123
エスケープシーケンス(画面上で普通に表記できずキーボードからも直接入力できない特別な意味を持つ文字の表記)を行うには、「`」(グレーブアクセント)記号と特定の文字を組み合わせて表現する。 文字列の改行を表記する場合、通常は「`r`n」と入力する…
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におけるファイル作成時のデフォルトの文字コードは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…
絶対パスはGet-ChildItemコマンドレットとFullNameプロパティを使うことで簡単に得ることができる。相対パスはパイプラインで-Relativeオプションを付けたResolve-Pathコマンドレットに渡す。 PS C:\> Set-Location Windows PS C:\Windows> (Get-ChildItem -…
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…
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…
New-TemporaryFileコマンドレットを使う。使ったらファイル名が返されるのではなく、使った時点でサイズが0のファイルが作成される。このファイルは自動で消されないため、作業が終わったら、手動で削除する必要がある。 PS > $tempfile = New-TemporaryFile…
RegexクラスのSplitメソッドを使う。最初の例ではStringクラスのSplitメソッドを使用しているが、分割の基準となる文字を1つしか指定できないため、うまくいかない。そのため、その次の例のとおりに、正規表現のパターンを「[\s]+」(1つ以上の連続した空白…
Trimメソッドは文字列の前後、TrimStartは前、TrimEndは後の空白を取り除く。 PS > $s = " Hello. " PS > "|" + $s.Trim() + "|" |Hello.| PS > "|" + $s.TrimStart() + "|" |Hello. | PS > "|" + $s.Trimend() + "|" | Hello.| これらのメソッドは、引数に…
コマンドラインで関数を定義したスクリプトを呼び出せばよい。ただし、実行時には実行演算子(&)で呼び出すのではなくドットソースをすること。ドットソースをすることで、スクリプト内で定義された変数と関数は、そのスクリプト終了後も持続する。スクリ…