View Invoke-FileRotation.ps1
Function Invoke-FileRotation() {
<#
.SYNOPSIS
指定されたファイルをローテーションします。
.DESCRIPTION
指定されたファイルをローテーションします。
ファイル名は sample.txt → sample.txt.n (n=1,2,3...) の様に変化します。
最終世代を超えたファイルは削除されます。
.PARAMETER LiteralPath
ローテーションするファイル名を指定します。
View Sort-IPV4Sample.ps1
#
# https://orebibou.com/2015/05/linuxunixのsortコマンドでipアドレスのソートを行う/
# のPowerShell版
#
cat .\test.txt | sort (0..3|%{[ScriptBlock]::Create("[int]$`_.Split('.')[$_]")})
View Rot13-1.ps1
#
# Rot13を愚直に実装
#
filter Rot13([switch]$Decript) {
if ($_ -isnot [string]) {
$_ = $_.ToString()
}
$radix = 13
$output = ""
foreach ($c in [char[]]$_) {
View New-ShortcutsOnStartMenu.ps1
#
# スタートメニューにexeファイルのショートカットファイルを置くスクリプト
#
# 検索対象ディレクトリ
$SearchDir = "C:\Program Files2"
# ショートカットファイル置き場
$OutputPath = Join-Path ([Environment]::GetFolderPath([Environment+SpecialFolder]::StartMenu)) "MyShortcuts"
#
# ショートカットを作る雑なファンクション
View Install-PS60toNanoServer.ps1
& {
# configurations
$uri = "https://github.com/PowerShell/PowerShell/releases/download/v6.0.0-alpha.14/powershell-6.0.0-alpha.14-win10-x64.zip"
$outfile = Join-Path $env:TEMP "powershell-6.0.0-alpha.14.zip"
$sha256 = "3F5FD873B6E3062D9741B019BC645E6F20999BE66B2FDAA4374495FEBEDD0E03"
$destination = "C:\Program Files\PowerShell\6.0.0.14"
# download
Write-Host "Downloading $uri ..." -ForegroundColor Green
Write-Host " Destination : $outfile" -ForegroundColor Green
Add-Type -AssemblyName System.Net.Http
View MSFT_DSCLocalConfigurationManager.PerformRequiredConfigurationChecks.ps1
#
# MSFT_DSCLocalConfigurationManager.PerformRequiredConfigurationChecks()メソッド
# を実行してDSC Pullの構成を直ちに実行する
# https://msdn.microsoft.com/ja-jp/powershell/dsc/msft-dsclocalconfigurationmanager-performrequiredconfigurationchecks
#
$param = @{
Namespace = 'Root\Microsoft\Windows\DesiredStateConfiguration';
ClassName = 'MSFT_DSCLocalConfigurationManager';
MethodName = 'PerformRequiredConfigurationChecks';
Arguments = @{ Flags = [Uint32]5 }; # 通常の整合性チェック(1) + Pull(4)
View Invoke-PesterCustomAssertionSample.ps1
# 参考 http://kamranicus.com/blog/2016/08/17/posh-pester-extend-custom-assertions/
# Pester 3.4.0 で検証済み
Import-Module Pester
# Pester + 動詞 の名前を持つ3つの関数を作る必要がある
# 1. Pester[動詞]
function PesterBeHash($Value, $Expected) {
if (-not ($Value -is [Hashtable] -and $Expected -is [Hashtable])) {
return $Value -eq $Expected
}
View Invoke-PesterParameterizedTestSample.ps1
Import-Module Pester
# テスト用の適当な関数
function FizzBuzz([int]$Value) {
if ($Value -le 0) {
return "Error!"
}
if ($Value % 15 -eq 0) {
return "FizzBuzz"
}
View Get-SubnetSample1.ps1
# whileありバージョン
"192.168.100.240/24"|&{$f,$s=$input-split"/";$f+"/"+($($i=-1;while(3-gt$i++){[Convert]::ToInt32(-join("1"*$s+"0"*(32-$s))[($i*8)..($i*8+7)],2)})-join".")}
# テストコード
0..32 | % { "192.168.100.240/$_" } | % {
$_ | &{$f,$s=$input-split"/";$f+"/"+($($i=-1;while(3-gt$i++){[Convert]::ToInt32(-join("1"*$s+"0"*(32-$s))[($i*8)..($i*8+7)],2)})-join".")}
}
View Write-BOMlessUTF8Sample.ps1
# 例1
"書き込み内容" `
| % { [Text.Encoding]::UTF8.GetBytes($_) } `
| Set-Content -Path ".\BOMlessUTF8.txt" -Encoding Byte
# 例2
Get-Content -Path ".\Source.txt" -Raw -Encoding Default `
| % { [Text.Encoding]::UTF8.GetBytes($_) } `
| Set-Content -Path ".\BOMlessUTF8.txt" -Encoding Byte