ファイル名の末尾に日付を加える

関数定義

function AddDate([string]$Path)
{
  $item = Get-Item -LiteralPath $Path
 
  # フォルダーとファイルの差を吸収する
  if($item.Length -eq $null)
    { $parent = $item.Parent.FullName }
  else { $parent = $item.DirectoryName }
 
  $time = Get-Date -Format "yyyy.MM.dd"
 
  return "{0}\{1}.{2}{3}" -f
    $parent,$item.Basename,$time,$item.Extension
}

実行例

PS U:\Work> # フォルダー名の末尾に日付
PS U:\Work> AddDate U:\Work\2chLog
U:\Work\2chLog.2011.11.11
PS U:\Work>
PS U:\Work> # ファイル名の末尾に日付
PS U:\Work> AddDate U:\Work\Folder.note
U:\Work\Folder.2011.11.11.note
PS U:\Work>

解説

 バックアップ用のファイルもしくはフォルダーにつける名前として、末尾に日付をつける方法がよく使われます。上記の関数を実行すると、ファイル名やフォルダー名の末尾に今日の日付がつきます。

 $itemがファイルの場合とフォルダーの場合とで、親フォルダーのパスの取得方法が変わります。そのため、条件分岐を利用して、どちらの場合でも $parent に親フォルダーのパスが入るようにします。

inserted by FC2 system