PHP Version up(7.3)

PHP Version up(7.3)

このプログラムは下記記事を全面的に参照させていただきました。
USBメモリ抜き忘れ防止スクリプトをPowerShellでやってみる

#USBログオフ時メッセージプロンプト処理
#メッセージ文
$messagePath="C:\temp\usbmessage.txt"
#ログ出力パス
$usbLOG="C:\temp\test\usblog.txt"
 
#--------------------------------------
#メッセージボックス
#--------------------------------------
function MessageBox([string]$p_value = "")
{
    [Void][Windows.Forms.MessageBox]::Show($p_value,"お知らせ","OK", "Warning")
}
 
 
$crUSB = Get-WmiObject -Class win32_usbhub | ? { $_.name -eq "USB 大容量記憶装置" } | ? { $_.status -eq  "OK" }
 
 
if ($crUSB) {
    write-output "$env:computername,$env:username,$(get-date)" >> $usbLOG
 
    #Windowsフォームのロード
    [Void][Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms");
 
    MessageBox $([String]::Join("`r`n", (Get-Content $messagePath)))
    
}

PHP Ver 7.3でWP SyntaxHighlighterが互換性がなかったことからテストしてみました。
このプログラムはUSB装置にUSBメモリがさしたままになっていないかを判定するプログラムです。
通常はログオフするときに働くように設定します。またログファイルは管理者権限のあるPath上にあるべきです。

↑人気ブログランキングに参加しています。ポチっと1票を!

USBログオフ時取り忘れ.ps1(powershell_ISEで実施)

WP SyntaxHighlighterが使えたぞ!

WP SyntaxHighlighterが使えたぞ!

WP SyntaxHighlighter

今日の前のブログの記事でUPした「WP SyntaxHighlighter」が使えたぞ。
2019年11月15日 @ 20:37にUPした「元号特定プログラム」記事のWP SyntaxHighlighter適用版です。

Function Ad-Conversion($indate){
  
    $ERA_MEIJI = "明治"
    $ERA_TAISHO = "大正"
    $ERA_SHOWA = "昭和"
    $ERA_HEISEI = "平成"
    $ERA_REIWA = "令和"
  
    $DATE_MEIJI = 18680908 
    $DATE_TAISHO = 19120730
    $DATE_SHOWA = 19261225
    $DATE_HEISEI = 19890108
    $DATE_REIWA = 20190501
  
    if($indate -lt $DATE_MEIJI){
  
        Write-Host("明治以前の日付には対応していません。")
  
    }elseif($indate -lt $DATE_TAISHO){
  
        Write-Host("元号は" + $ERA_MEIJI + "です。")
  
    }elseif($indate -lt $DATE_SHOWA){
  
        Write-Host("元号は" + $ERA_TAISHO + "です。")
     
    }elseif($indate -lt $DATE_HEISEI){
  
        Write-Host("元号は" + $ERA_SHOWA + "です。")
     
    }elseif($indate -lt $DATE_REIWA){
  
        Write-Host("元号は" + $ERA_HEISEI + "です。")
  
    }else{
         
         Write-Host("元号は" + $ERA_REIWA + "です。")
 
         }
}
  
Ad-Conversion 19300101 # ①
Ad-Conversion 18700101 # ②
Ad-Conversion 20190101 # ③
Ad-Conversion 20190502 # ④
Ad-Conversion 20200101 # ⑤
Ad-Conversion 19510817 # ⑥

# 下記は同スクリプトを実行した結果です
# 元号は昭和です。①
# 元号は明治です。②
# 元号は平成です。③
# 元号は令和です。④
# 元号は令和です。⑤
# 元号は昭和です。⑥

上記は元のプログラムと「SYOU」と「SHO」が違っています。
(写真はY.O.氏から借用)

↑人気ブログランキングに参加しています。ポチっと1票を!

元号特定プログラム

Ad-Conversion 20190502④で関数を呼び出し結果を表示する。今回は月日も考慮する。

元号特定プログラム

前に当ブログで西暦、和暦相互変換のプログラムを載せたが、今回はPowerShell_ISEで西暦年月日でその日がどの元号に当たるかを特定するプログラムである。Ad-Conversion 20190502④で関数を呼び出し結果を表示する。今回は月日も考慮する。

Function Ad-Conversion($indate){

$ERA_MEIJI = “明治”
$ERA_TAISYOU = “大正”
$ERA_SYOUWA = “昭和”
$ERA_HEISEI = “平成”
$ERA_REIWA = “令和”

$DATE_MEIJI = 18680908
$DATE_TAISYOU = 19120730
$DATE_SYOUWA = 19261225
$DATE_HEISEI = 19890108
$DATE_REIWA = 20190501

if($indate -lt $DATE_MEIJI){

Write-Host(“明治以前の日付には対応していません。”)

}elseif($indate -lt $DATE_TAISYOU){

Write-Host(“元号は” + $ERA_MEIJI + “です。”)

}elseif($indate -lt $DATE_SYOUWA){

Write-Host(“元号は” + $ERA_TAISYOU + “です。”)

}elseif($indate -lt $DATE_HEISEI){

Write-Host(“元号は” + $ERA_SYOUWA + “です。”)

}elseif($indate -lt $DATE_REIWA){

Write-Host(“元号は” + $ERA_HEISEI + “です。”)

}else{

Write-Host(“元号は” + $ERA_REIWA + “です。”)

}
}

Ad-Conversion 19300101①
Ad-Conversion 18700101②
Ad-Conversion 20190101③
Ad-Conversion 20190502④
Ad-Conversion 20200101⑤
Ad-Conversion 19510817⑥

*******************************************************
PS C:\Users\prog> C:\Users\prog\Desktop\File\Gengo.ps1
元号は昭和です。①
元号は明治です。②
元号は平成です。③
元号は令和です。④
元号は令和です。⑤
元号は昭和です。⑥

*************以下は実行結果

(写真はY.O.氏から借用)

↑人気ブログランキングに参加しています。ポチっと1票を!

PowerShell_ISEを使ったバックアップ

PowerShell_ISEを使ったバックアップ

自分のバックアップしたいフォルダーだけUSBメモリーに落とす。

PowerShell_ISEで実行。(以下がコマンドレットを利用したスクリプト)

$date = Get-Date -UFormat “%Y年%B%d日 %H:%M:%S”
Write-Host “Start” $date

Set-Location C:\Users\rsj10\Desktop\File

If (-not(Test-Path G:\音楽)){
New-Item G:\音楽 -ItemType Directory
}

If (-not(Test-Path G:\画像)){
New-Item G:\画像 -ItemType Directory
}

If (-not(Test-Path G:\動画)){
New-Item G:\動画 -ItemType Directory
}

If (-not(Test-Path G:\資料)){
New-Item G:\資料 -ItemType Directory
}

If (-not(Test-Path G:\机上)){
New-Item G:\机上 -ItemType Directory
}

If (-not(Test-Path G:\Prog)){
New-Item G:\Prog -ItemType Directory
}

If (-not(Test-Path G:\CG-B)){
New-Item G:\CG-B -ItemType Directory
}

If (-not(Test-Path G:\osource)){
New-Item G:\osource -ItemType Directory
}

$indir = “C:\Users\rsj10\Desktop\”
$outdir = “G:\机上”
$date = Get-Date -UFormat “%y%m%d”

Get-ChildItem $indir | Foreach-Object {

$infile = $indir + “\” + $_.name
$outfile = $outdir + “\” + $date + “_” + $_.name
Copy-Item $infile -Destination $outfile -Recurse

}

$indir = “C:\Users\rsj10\AppData\Local\Programs\Prog\”
$outdir = “G:\Prog”
$date = Get-Date -UFormat “%y%m%d”

Get-ChildItem $indir | Foreach-Object {

$infile = $indir + “\” + $_.name
$outfile = $outdir + “\” + $date + “_” + $_.name
Copy-Item $infile -Destination $outfile -Recurse

}

$indir = “E:\191111BkUpG\画像\雄三\Snipping\snippingToshiba\”
$outdir = “G:\画像”
$date = Get-Date -UFormat “%y%m%d”

Get-ChildItem $indir | Foreach-Object {

$infile = $indir + “\” + $_.name
$outfile = $outdir + “\” + $date + “_” + $_.name
Copy-Item $infile -Destination $outfile -Recurse

}

$indir = “E:\191111BkUpG\資料\”
$outdir = “G:\資料”
$date = Get-Date -UFormat “%y%m%d”

Get-ChildItem $indir | Foreach-Object {

$infile = $indir + “\” + $_.name
$outfile = $outdir + “\” + $date + “_” + $_.name
Copy-Item $infile -Destination $outfile -Recurse

}

$indir = “C:\Users\rsj10\CG-B\”
$outdir = “G:\CG-B”
$date = Get-Date -UFormat “%y%m%d”

Get-ChildItem $indir | Foreach-Object {

$infile = $indir + “\” + $_.name
$outfile = $outdir + “\” + $date + “_” + $_.name
Copy-Item $infile -Destination $outfile -Recurse

}

$indir = “C:\Users\rsj10\osource\”
$outdir = “G:\osource”
$date = Get-Date -UFormat “%y%m%d”

Get-ChildItem $indir | Foreach-Object {

$infile = $indir + “\” + $_.name
$outfile = $outdir + “\” + $date + “_” + $_.name
Copy-Item $infile -Destination $outfile -Recurse

}

$date = Get-Date -UFormat “%Y年%B%d日 %H:%M:%S”
Write-Host “End” $date

これだと第1段目のディレクトリ、ファイルにしか日付が入らない。

(写真はY.O.氏から借用)

↑人気ブログランキングに参加しています。ポチっと1票を!

PowerShell_ISEでFileを作る‐フォルダーごと削除する

191109

PowerShell_ISEでFileを作る‐フォルダーごと削除する

PowerShell_ISEでファイルをフォルダーごと削除する

① 「New-Item」コマンドレットでFile or Directoryを作る
New-Item -Path Desktop\Sample\201910\1001\sample.txt -ItemType File -Force
② 「File」名はsample.txt
③ 「ItemType」パラメーターはFile
④ パスは「ユーザー」~「1001」フォルダー
⑤ 確かに「sample.txt」が作られた
⑥ 「createfile.ps1」が実行された
⑦ 「sample.txt」ができている
⑧ それを「Remove-Item」コマンドレットで「201910」フォルダーごと削除する
Set-Location C:\Users\******\Desktop\Sample
Remove-Item 201910 -Force -Recurse
⑨ フォルダー以下全てを削除する
⑩ 「RemoveFolder01.ps1」を実行する
⑪ 確かにフォルダー「201910」が削除されている

以上

↑人気ブログランキングに参加しています。ポチっと1票を!

PowerShell_ISEを使ってみた

ちょっと迷っている。それは、今までのPowerShellがWindows用だけであったのに対して、PowerShell core 6.0以降がWindowsだけでなくLinux、MacOSにも対応しているからである。

PowerShell_ISEを使ってみた

Windows PowerShell ISE(Integrated Script Environment)を使ってみた。
ちょっと迷っている。それは、
今までのPowerShellがWindows用だけであったのに対して
PowerShell core 6.0以降がWindowsだけでなくLinux、MacOSにも対応しているからである。
普通のWindowsPowerShellが新規開発を行わずにBugのみに対応するのに対して、
coreの方はこれからずっと新規機能にも対応する。
しかし、coreの方は日本語文書もまだ出回っておらず反対にPowerShellの方は豊富に出回っている。
私はLinuxの方はWSLで使うがその他はWindowsだけで今のところ十分である。
そこで見切り発車して今までのWindows PowerShell_ISEで開発することとした。
アイキャッチ画像は
①通常の配列を使った例
②パイプを使ってForEach-Objectにて配列で①と同等の処理を行った例です。
・変数は数値や文字列を一時的に保存する箱のようなもの。
・ForEach-Objectを使うと配列の全要素に対して処理をするスクリプトをシンプルに書くことができます。

ForEach-Object(配列処理)


↑人気ブログランキングに参加しています。ポチっと1票を!