#******************************************************************
#* *
#* 部品名:サーバー間ファイルコピー *
#* *
#* ver 作成者 日付 変更内容 *
#* -------------------------------------------------------------- *
#* 1.0.0 XXXX 2021/8/6 初版 *
#* *
#* Copyright(C) Nomura Research Institute, Ltd. *
#* All rights reserved. *
#* *
#******************************************************************
## ファイル名 : CopyFileByName.ps1
## 処理概要 : サーバー間ファイルコピー機能
## 引数 : なし
## リターン値 : 0(正常終了)
## リターン値 : 1(処理失敗)
## 入力ファイル : なし
## 出力ファイル : なし
## 使用外部コマンド :
## 使用外部環境変数 :
## 実行ユーザID : senju
## 注意事項 : 特になし
#-----------------------------------------------------------------
# 定数定義
#-----------------------------------------------------------------
# 例外発生時は処理を停止する
$ErrorActionPreference = "Stop"
###########################################################################
# 共通変数定義
###########################################################################
$msg_Exception = "例外が発生しました。"
###########################################################################
# 初期処理
###########################################################################
# --- 変数定義&初期化 ---
$rtn_cd = 0 # リターンコード
$my_script = $MyInvocation.mycommand.name # スクリプトファイル名
#-----------------------------------------------------------------
# メイン処理
#-----------------------------------------------------------------
$IniFile="D:\WORK\LastExecuteTime.ini"
$PathFrom="D:\WORK\データ元\"
$PathTo="D:\WORK\データ先\"
$DateTime=type $IniFile
$regex = "\d{8}_\d{6}(?=\.dat)"
# 例外を捕捉する (エラーはすべて例外として処理)
trap {
$err = $_
$error_msg = $err.Exception.Message
if ($error_msg -eq $null) {
$error_msg = "ERROR 予期せぬ例外が発生しました"
}
$msg_Exception = $msg_Exception+$error_msg
Write-Output ( ( Get-Date -format yyyy/MM/dd ) + " " `
+ ( Get-Date -format HH:mm:ss ) + " " `
+ $my_script + " " `
+ $error[0] )
$rtn_cd = 1
Pop-Location
break
}
#net use \\10.100.1.1\ipc$ "aaa" /user:"administrator"
#Write ('$DateTime=' + $DateTime)
Get-ChildItem $PathFrom *.dat | ForEach-Object -Process{
Write-Host('[regex].value=' + [regex]::matches($_.name, $regex).value);
Write-Host('$DateTime=' + $DateTime);
if([regex]::matches($_.name, $regex).value -ge $DateTime) {
$file=$PathFrom+$_.name
# Write-Host([regex]::matches($_.name, $regex).value);
# Write-Host($file);
copy $file $PathTo
}
}
Get-Date -Format 'yyyyMMddHHmmss' | Out-File $IniFile
###########################################################################
# 後処理
###########################################################################
# --- 処理終了 ---
# リターンコード返却
exit $rtn_cd