/powershell/Invoke-WebRequest を使用してサーバ上のファイルの情報を取得する
Invoke-WebRequest を使用して接続先のファイルの情報(更新日時)を取得したい
使用する言語は Powershell v5.1
ソース
# コメント # with-bom # 日本語を含む場合は bom ありで保存する必要あり # .psm1 にする # progress information not displayed : $progressPreference = 'silentlyContinue' # Basic Authenticationj ------------------------------------------- $yourid = '' # 必要 $yourpwd = '' # 必要 function mygetcred{ $yourconvpwd = ConvertTo-SecureString $yourpwd -AsPlainText -Force $mycred = New-Object System.Management.Automation.PSCredential($yourid, $yourconvpwd) return $mycred } # parse : [DateTime]::ParseExact("20171231","yyyyMMdd", $null) function mychangedate{ param ( $fromsvn ) # myformat $myformat = "ddd, " # Sat, 04 Sep 2021 00:48:40 GMT $mycultureinfo= [System.Globalization.CultureInfo]::CreateSpecificCulture("en-US") $result = [DateTime]::ParseExact($fromsvn,$myformat, $mycultureinfo) return $result } # Main / $mytype は A-or-B で固める。 function getmysvninfo{ Param( [ValidateSet(“func”, “cont”)]$mytype, $myfilename ) $baseurl = 'http://127.0.0.1:8000/' if ( $null -eq $mytype -or $null -eq $myfilename){ Write-host "----------------------------------------------------" Write-Host "引数を二つ指定してください" Write-Host "第一引数: func または cont" Write-Host "第二引数: 対象のテキストファイルまでのパス" write-host "■ 使用例:" Write-Host " getmysvninfo func ./some.txt" Write-Host " または" Write-host " getmysvninfo cont ./some.txt" Write-host "----------------------------------------------------" exit } else{ # Write-Host "arg01: [ $mytype ] arg02: [ $myfilename ]" # ファイルを読み込む処理 foreach ($item in $(get-content $myfilename)) { # echo "--- $item ---" # http の情報を取得する: curl みたいの # Invoke-WebRequest -Uri "http://path/to/url/" -Credential $mycred # Invoke-WebRequest -Uri "http://127.0.0.1:8000/"$mytype # echo "http://127.0.0.1:8000/$mytype$item" # Invoke-WebRequest -Uri "http://127.0.0.1:8000/$mytype$item" -UseBasicParsing # -Credential $mycred $urlfull = ${baseurl}+${mytype}+${item} ## $statusCode = 0 $myresult = $null try{ $myresult = Invoke-WebRequest -UseBasicParsing -uri $urlfull $statusCode = $myresult.StatusCode }catch [System.Net.WebException]{ $statusCode = $_.Exception.Response.StatusCode.value__ } ## if ($statuscode -eq 200) { $mylastdate = ([datetime]$myresult.Headers['Last-Modified']).Tostring("yyyy-MM-dd HH:mm:ss") Write-Output "$mylastdate : $statuscode : $item : $urlfull" }else{ Write-Output "---- Not Found ---- : $statuscode : $item : $urlfull" } } } }
Miscellaneous
- はてなブログの書き方は Markdownの書き方を混ぜてもおkみたい。。
- ソースに ps1 としてあげれば、Poweshell用の色付けをしてくれる。
- 次のテーマ: docs.microsoft.com
- 書式指定