PowerShell - shinsuzuki/learn GitHub Wiki

実行ポリシーを変更せずに使う手法

外部コマンドの戻り値と標準エラー出力を取得する方法

$res = Invoke-WebRequest -Method Get -Uri "https://localhost:7134/api/Home/BooleanResponse"
Write-Host $res.StatusCode
Write-Host $res.Content

$obj = ConvertFrom-Json $res.Content
Write-Host $obj.isSuccess
$result = $obj.data.isExist

if ($result) {
    Write-Host "The result is true, the test passed."
}
else {
    Write-Host "The result is false, the test failed."
}
> .\result_check.ps1
200
{"isSuccess":true,"data":{"id":1,"message":"Success API","isExist":false}}
True
The result is false, the test failed.

Log4netを利用

  • log4net

log4.net.xml

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <log4net>
        <appender name="FileAppender" type="log4net.Appender.FileAppender">
            <file value="D:\work\ps-log4net\log\test.log"/>
            <appendToFile value="true"/>
            <layout type="log4net.Layout.PatternLayout">
                <conversionPattern value="%date [%-5level] [%logger] [%username] - %message%newline"/>
            </layout>
            <Encoding value="UTF-8"/>
            <param name="AppendToFile" value="true" />
        </appender>
        <root>
            <level value="ALL"/>
            <appender-ref ref="FileAppender"/>
        </root>
    </log4net>
</configuration>

sample

$appdir = [System.IO.Path]::GetDirectoryName($myInvocation.MyCommand.Definition) + "\";

#log4netのDLL読み込み
$dllFile = $appdir + "log4net\log4net.dll";
Add-Type -Path $dllFile;

#log4net設定ファイル読み込み
$xmlFile = $appdir + "log4net\log4net.xml";
$configFile = Get-Item $xmlFile;
[log4net.Config.XmlConfigurator]::Configure($configFile);


# ロガーの定義
$logger = [log4net.LogManager]::GetLogger($script:myInvocation.MyCommand.Name);

#log4netでログ出力
$logger.Info("info");
$logger.Debug("debug");
$logger.Warn("warn");
$logger.Error("error");
$logger.Fatal("fatal");

try {
    $a = 1 / 0;
}
catch [Exception] {
    $logger.Error($_.ScriptStackTrace);
    $logger.Error($_.exception);
    throw $_;
}

ファイルのブロックの解除

ダウンロードしたファイルの「ブロックの解除」を一括で行う方法 2つ

⚠️ **GitHub.com Fallback** ⚠️