그래서 내가 좋아하는 나와 MSSQL 백업 한 무리의 이름을 변경하기 위해 노력하고있어 이름을 바꿉니다단일 라인은 파일 확인과 루프 파이프 및
DBName.bak
처럼 뭔가에
DBName_backup_2017_12_20_564451321_567987465.bak
을뿐만 아니라이 안전 확인을 통해 DBName.bak
을 이미 복용 한 경우 DBName_1.bak
을 수행 할 것입니다. 여기서 1은 사용되지 않는 유효한 파일 이름이있을 때까지 증분 변수입니다.
Get-ChildItem *_*.bak | % {
# Set the new name, replace everything after the first underscore '_' with
# '.bak'
$newName = &{$_.Name -replace $_.Name.Substring($_.Name.IndexOf("_")), '.bak'}
# Check if new name exists
for ($cnt = 1; (Test-Path $newName) -eq $true; $cnt++) {
# If it already exists add '_' and a number check again until unused
# filename is found
$newName = &{$newName -replace '.bak', "_$cnt.bak"}
}
# Rename file to new filename. Uncomment WhatIf for testing.
Rename-Item -Path $_ -NewName $newName #-WhatIf
}
, 배관과 한 줄을에, 그러나 운이없는입니다. 특히 Test-Path
수표를 사용하여 루프를 실행하십시오. 아무도 내가 이런 식으로 할 수있는 방법을 알고 있니? 간단한
> 데이터베이스 이름이 중복 된 파일의 번호를 다시 지정하기를 원할 경우 실제로는 한 줄로 표시 할 수 없습니다. 그건 내가 두려워했던거야. 글쎄, 적어도 나에게 테스트 경로와 파이프를하는 방법을 보여 주셔서 고마워요. –