파일로 가득 찬 폴더가 있는데 모두 다음과 같습니다.
액자_숫자_지연-숫자.gif
삭제하고 싶습니다.액자_그리고_지연부분.
도와주세요!
답변1
이를 위해 PowerShell을 사용할 수 있습니다. 이를 열고 이름을 바꾸려는 파일이 포함된 폴더로 이동합니다 cd
. 그런 다음 다음 명령을 실행합니다.
cd C:\Path\to\your\folder
Get-ChildItem -Filter *.gif -File | Foreach-Object { Rename-Item -Path $_.FullName -NewName $_.Name.replace("frame_","").replace("_delay","") -WhatIf }
-WhatIf
이것은 드라이 런(dry run)이라는 뜻입니다. 표시된 결과에 만족하면 이를 제거하여 실제로 파일 이름을 바꾸세요.
답변2
Megamorf의 답변은 정확하지만 개선될 수 있습니다. 여기에 제 2센트가 있습니다.
명령을 한 줄로 줄일 수 있습니다.
Get-ChildItem -Path "C:\Path\to\folder" -Filter "*.gif" -File -Recurse | % { Rename-Item -Path $_.FullName -NewName $($_.Name -replace "frame_|_delay") -WhatIf }
"C:\path\to\folder" 명령에서 실제 경로에 대한 자리 표시자는 명령을 실행할 때 경로를 실제 경로로 바꿉니다.
스위치 -Recurse
는 하위 디렉터리도 처리하는 명령을 지정합니다.
%
scriptblock( {
과 사이의 모든 명령 }
)과 함께 사용될 때 는 에 대한 별칭입니다 ForEach-Object
. 사용되지 않으면 scriptblock이 뒤에 오는 것은 모듈러스 연산자(즉, 21 % 6
반환할 것임 )를 의미하며, 표시를 3
사용하는 것이 일반적입니다 .%
ForEach-Object
연산자 -Replace
는 정규식 일치를 사용하며 대체 항목을 제공할 필요가 없으므로 한 단계에서 두 문자열을 바꿀 수 있어 많은 문자를 절약할 수 있습니다.
답변3
소프트웨어 사용이름 바꾸기. 그것은 무료입니다.
텍스트가 포함된 제거 규칙 frame_
과 가 포함된 또 다른 제거 규칙을 만듭니다 _delay
.