programing

폴더에 있는 모든 파일의 파일 이름에서 특정 문자 바꾸기 또는 삭제

padding 2023. 8. 1. 20:21
반응형

폴더에 있는 모든 파일의 파일 이름에서 특정 문자 바꾸기 또는 삭제

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: =_%하위 블록의 모든 라인에서 다음 문자를 바꿉니다.:의성을띠 뒤에 있는 =그래서 현재 상태에서 문자 다발은 밑줄로 대체될 것입니다.

를 합니다.echoren 명령을 활성화하면 명령이 콘솔 창에 인쇄되기 때문입니다.

됩니다./sDIR 명령 부분으로 이동하면 현재 폴더 아래의 모든 폴더도 처리됩니다.

특정 문자를 삭제하려면 = 기호 뒤에 있는 문자를 삭제합니다.%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

반응형