PowerShell을 사용한 파일 이름 타임스탬프
난 끈에 길이 있어
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)"}
다음은 작동해야 하는 PowerShell 코드입니다.대부분의 것을 적은 행으로 조합할 수 있지만, 알기 쉽고 알기 쉽게 하고 싶었습니다.
[string]$filePath = "C:\tempFile.zip";
[string]$directory = [System.IO.Path]::GetDirectoryName($filePath);
[string]$strippedFileName = [System.IO.Path]::GetFileNameWithoutExtension($filePath);
[string]$extension = [System.IO.Path]::GetExtension($filePath);
[string]$newFileName = $strippedFileName + [DateTime]::Now.ToString("yyyyMMdd-HHmmss") + $extension;
[string]$newFilePath = [System.IO.Path]::Combine($directory, $newFileName);
Move-Item -LiteralPath $filePath -Destination $newFilePath;
보안 로그를 내보내야 했고 세계 표준시로 날짜와 시간을 알고 싶었습니다.이것은 이해하기 어려운 과제였지만 실행은 매우 간단했습니다.
wevtutil export-log security c:\users\%username%\SECURITYEVENTLOG-%computername%-$(((get-date).ToUniversalTime()).ToString("yyyyMMddTHHmmssZ")).evtx
매직 코드는 이 부분입니다.
$(((get-date).ToUniversalTime()).ToString("yyyyMMddTHHmmssZ"))
위의 대본 감사합니다.파일 끝에 올바르게 추가되는 작은 수정 사항입니다.이거 드셔보세요...
$filenameFormat = "MyFileName" + " " + (Get-Date -Format "yyyy-MM-dd") **+ ".txt"**
Rename-Item -Path "C:\temp\MyFileName.txt" -NewName $filenameFormat
변수($pathfile)에 경로가 있는 경우 다음 구체적인 줄을 사용하여 타임스탬프 경로를 가져옵니다.
(여기서 다운로드 : https://powershellexamples.com/home/Article/10/file-management-add-timestamp-to-file-name)
$pathFile = "C:\ProgramData\MyApp\file.txt"
$pathFileTimestamp = [System.IO.Path]::GetDirectoryName($pathFile) + "\" + `
[System.IO.Path]::GetFileNameWithoutExtension($pathFile) + "_" + `
(get-date -format yyyyMMdd_HHmmss) + ([System.IO.Path]::GetExtension($pathFile))
Write-Host "Path+File: $pathFile"
Write-Host "Path+File with Timestamp: $pathFileTimestamp"
위가 반환됩니다.
PS C:\> Path+File: C:\ProgramData\MyApp\file.txt
Path+File with Timestamp: C:\ProgramData\MyApp\file_20210328_022045.txt
용도:
$filenameFormat = "mybackup.zip" + " " + (Get-Date -Format "yyyy-MM-dd")
Rename-Item -Path "C:\temp\mybackup.zip" -NewName $filenameFormat
이름을 바꾸기 위한 또 다른 접근법입니다.
Set-Location C:\Folder_containing_zipfiles
Get-ChildItem -File | ForEach-Object { Rename-Item -Path $_.FullName -NewName
$_.Name.Replace('.zip',"_$(get-date -Format yyyy_MM_dd_hh_mm_ss).zip") }
변수를 사용하여 기존 파일 이름 바꾸기
Get-Content -Path '${{vars.LOG_PATH}}\eventMapper.log'
$filenameFormat = 'eventMapper-' + (Get-Date -Format 'yyyy-mm-dd-hh-mm') + '.log'
Rename-Item -Path '${{vars.LOG_PATH}}\eventMapper.log' -NewName $filenameFormat
파일 생성 --> eventMapper-2023-23-21-10-23.log
Date + Filename
(없음)Filename + Date
) - 그렇지 않으면 파일 확장자가 엉망이 됩니다.
$filenameFormat = (Get-Date -Format "yyyy-MM-dd") + " " + "mybackup.zip"
Rename-Item -Path "C:\temp\mybackup.zip" -NewName $filenameFormat
언급URL : https://stackoverflow.com/questions/1954203/timestamp-on-file-name-using-powershell
'programing' 카테고리의 다른 글
PowerShell에서 파일을 한 줄씩 스트림으로 처리하는 방법 (0) | 2023.04.08 |
---|---|
디렉토리가 존재하지 않는 경우 작성 (0) | 2023.04.08 |
SQL Server에서 단일 ALTER TABLE 문을 사용하여 여러 열을 드롭하려면 어떻게 해야 합니까? (0) | 2023.04.08 |
문자열의 UPDATE 및 REPLACE 부분 (0) | 2023.04.08 |
.vimrc 파일에 gvim 글꼴 설정 (0) | 2023.04.08 |