1. ホーム
  2. powershell

[解決済み] PowerShellによるファイル名へのタイムスタンプ付与

2022-08-30 10:45:15

質問

文字列の中にパスがあります。

"C:\temp\mybackup.zip"

そのスクリプトに、例えばタイムスタンプを挿入したい。

"C:\temp\mybackup 2009-12-23.zip"

PowerShell でこれを行う簡単な方法はありますか?

どのように解決するのですか?

二重引用符で囲まれた文字列の中に任意のPowerShellスクリプトコードを挿入するには、例えば$()のように副式を使用することで可能です。

"C:\temp\mybackup $(get-date -f yyyy-MM-dd).zip"

また、どこかからパスを取得している場合は - すでに文字列として。

$dirName  = [io.path]::GetDirectoryName($path)
$filename = [io.path]::GetFileNameWithoutExtension($path)
$ext      = [io.path]::GetExtension($path)
$newPath  = "$dirName\$filename $(get-date -f yyyy-MM-dd)$ext"

そして、もしそのパスがたまたま Get-ChildItem :

Get-ChildItem *.zip | Foreach {
  "$($_.DirectoryName)\$($_.BaseName) $(get-date -f yyyy-MM-dd)$($_.extension)"}