폴더에 있는 모든 파일의 파일 이름에서 특정 문자 바꾸기 또는 삭제
Windows 폴더에 있는 모든 파일의 파일 이름을 한 번에 실행하여 특정 문자를 삭제하거나 특정 문자를 다른 문자로 바꾸려면 어떻게 해야 합니까?
PowerShell을 사용하여 DOS 프롬프트에서 더 스마트한 작업을 수행할 수 있습니다.여기서는 공간이 포함된 현재 디렉터리의 모든 파일 및 디렉터리를 다음으로 대체하여 배치 이름을 변경하는 방법을 보여 줍니다._
밑줄
Dir |
Rename-Item -NewName { $_.Name -replace " ","_" }
편집:
선택적으로,Where-Object
명령을 사용하여 연속적인 cmdlet(command-let)에 대해 적합하지 않은 개체를 필터링할 수 있습니다.다음은 유연성을 제공할 수 있는 몇 가지 예입니다.
문서 파일을 건너뛰려면
Dir | Where-Object { $_.Name -notmatch "\.(doc|xls|ppt)x?$" } | Rename-Item -NewName { $_.Name -replace " ","_" }
디렉터리만 처리하려면(3.0 이전 버전)
Dir | Where-Object { $_.Mode -match "^d" } | Rename-Item -NewName { $_.Name -replace " ","_" }
PowerShell v3.0이 새로 도입됨
Dir
플래그를 사용할 수도 있습니다.Dir -Directory
거기.밑줄(또는 일부 다른 문자)이 이미 포함된 파일을 건너뛰려면 다음과 같이 하십시오.
Dir | Where-Object { -not $_.Name.Contains("_") } | Rename-Item -NewName { $_.Name -replace " ","_" }
Windows PowerShell에서 특정 문자를 삭제하거나 이름을 변경하는 한 줄 명령은 다음과 같습니다.(여기서는 공백이 밑줄로 대체됩니다.)
Dir | Rename-Item –NewName { $_.name –replace " ","_" }
PowerShell 응답은 좋지만 모든 파일에 원하지 않는 문자가 포함되어 있지 않으면 동일한 대상 디렉터리에서 Rename-Item 명령이 작동하지 않습니다(중복된 파일이 발견되면 실패).
저와 마찬가지로 좋은 이름과 나쁜 이름이 혼합된 경우 대신 이 스크립트를 사용하십시오(공백을 밑줄로 대체함).
Get-ChildItem -recurse -name | ForEach-Object { Move-Item $_ $_.replace(" ", "_") }
이 배치 파일은 도움이 될 수 있지만 몇 가지 제한 사항이 있습니다.파일 이름 문자 = 및 %는(여기 메모리에서) 바꿀 수 없으며 파일 이름의 ^도 문제가 될 수 있습니다.
부분에서는%newname: =_%
하위 블록의 모든 라인에서 다음 문자를 바꿉니다.:
의성을띠 뒤에 있는 =
그래서 현재 상태에서 문자 다발은 밑줄로 대체될 것입니다.
를 합니다.echo
ren 명령을 활성화하면 명령이 콘솔 창에 인쇄되기 때문입니다.
됩니다./s
DIR 명령 부분으로 이동하면 현재 폴더 아래의 모든 폴더도 처리됩니다.
특정 문자를 삭제하려면 = 기호 뒤에 있는 문자를 삭제합니다.%newname:z=%
이와 같은 항목은 모든 z 문자를 제거합니다(대소문자 구분 안 함).
@echo off
for /f "delims=" %%a in ('dir /a:-d /o:n /b') do call :next "%%a"
pause
GOTO:EOF
:next
set "newname=%~nx1"
set "newname=%newname: =_%"
set "newname=%newname:)=_%"
set "newname=%newname:(=_%"
set "newname=%newname:&=_%"
set "newname=%newname:^=_%"
set "newname=%newname:$=_%"
set "newname=%newname:#=_%"
set "newname=%newname:@=_%"
set "newname=%newname:!=_%"
set "newname=%newname:-=_%"
set "newname=%newname:+=_%"
set "newname=%newname:}=_%"
set "newname=%newname:{=_%"
set "newname=%newname:]=_%"
set "newname=%newname:[=_%"
set "newname=%newname:;=_%"
set "newname=%newname:'=_%"
set "newname=%newname:`=_%"
set "newname=%newname:,=_%"
echo ren %1 "%newname%
는 저는그것추다천니합을▁the다▁would를 추천합니다.rename
이를 위한 명령. 형ren /?
명령행에서 더 많은 도움을 받을 수 있습니다.
언급URL : https://stackoverflow.com/questions/16636996/replace-or-delete-certain-characters-from-filenames-of-all-files-in-a-folder
'programing' 카테고리의 다른 글
코틀린에서 지연 후 함수를 어떻게 호출합니까? (0) | 2023.08.01 |
---|---|
CSS의 응답 글꼴 크기 (0) | 2023.08.01 |
SQL Server에서 동일한 두 열을 비교하려면 어떻게 해야 합니까? (0) | 2023.08.01 |
E: 패키지 npm을 찾을 수 없습니다. (0) | 2023.08.01 |
Oracle PL/SQL 생성 또는 교체 저장 프로시저에서 예외를 포착하여 반환(또는 인쇄)하는 방법 (0) | 2023.08.01 |