windows:scripts:powershell:timestamp_file
timestamp_file
Создать копию текущего файла с меткой времени в имени.
Запуск через bat файл.
Файл запускает *.ps1 файл с таким же названием передавая аргументы.
- timestamp_file.bat
@echo off setlocal set "PS_EXE=%ProgramFiles%\PowerShell\7\pwsh.exe" if not exist "%PS_EXE%" set "PS_EXE=%SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe" set "PS1=%~dp0%~n0.ps1" "%PS_EXE%" -NoProfile -ExecutionPolicy Bypass -File "%PS1%" %* endlocal pause exit
- timestamp_file.ps1
# ========================================================== # File: timestamp_file.ps1 # Purpose: Append current date/time to filename # Modes: # - Rename : переименовать файл # - Copy : создать копию с меткой времени # Format: # NAME.txt -> NAME_2025-11-08_19-37-01.txt # Usage: # .\timestamp_file.ps1 -Path "C:\path\file.txt" -Mode Copy # ========================================================== param( [Parameter(Mandatory = $true)] [string]$Path, [ValidateSet("Rename","Copy")] [string]$Mode = "Copy" ) # Проверяем существование файла if (-not (Test-Path -Path $Path -PathType Leaf)) { Write-Host "[!] File not found:" $Path -ForegroundColor Red exit 1 } # Разбираем путь и имя $dir = Split-Path $Path $name = [System.IO.Path]::GetFileNameWithoutExtension($Path) $ext = [System.IO.Path]::GetExtension($Path) # Временная метка $timestamp = (Get-Date).ToString("yyyy-MM-dd_HH-mm-ss") $newName = "${name}_${timestamp}${ext}" $newPath = Join-Path $dir $newName # Проверка существования целевого файла if (Test-Path $newPath) { Write-Host "[!] Target file already exists:" $newPath -ForegroundColor Yellow exit 1 } # Выполняем действие switch ($Mode) { "Rename" { Rename-Item -Path $Path -NewName $newName Write-Host "[✓] File renamed to:" $newName -ForegroundColor Cyan } "Copy" { Copy-Item -Path $Path -Destination $newPath Write-Host "[✓] Copy created:" $newName -ForegroundColor Cyan } }
windows/scripts/powershell/timestamp_file.txt · Последнее изменение: —
