하나의 명령으로 여러 폴더의 여러 파일 이름을 바꾸는 방법


11

우리는 *.html파일 이름을 바꾸고 *.php싶지만 cmd 프롬프트 명령 및 / 또는 배치 파일을 사용하여 지식이 충분하지 않습니다.

문제는 각 파일이 별도의 폴더에 있다는 것입니다. 750 개 이상의 다른 폴더 이름에 대해 이야기하고 있습니다. 내가 아는 파일에 와일드 카드를 사용하는 * 것은 폴더에 와일드 카드를 사용하는 것은 나에게 알려져 있지 않습니다. FOR명령 프롬프트에서 명령 을 사용해야 할 수도 있지만 문제가 있습니다.

우리가 사용하는 폴더 구조는 다음과 같습니다.

부모 폴더 / 자식 폴더 / grandchild-folder / 파일 .html

예를 들면 다음과 같습니다.

  • games/A/game_name/file.html
  • games/B/game_name/file.html
  • games/C/game_name/file.html 등등.

부모 폴더는 모든 파일에서 동일합니다. 자식 및 손자 폴더는 대부분의 파일에서 다릅니다.

이 파일의 이름을 바꾼 후에 *.php는 다음에서 .htaccess영구적으로 리디렉션 한다고 가정합니다 .

RedirectMatch 301 (.*)\.html$ http://oursite.com$1.php

답변:


14

get-childItem -recurse | Where {$_.extension -eq ".html"} | rename-item -newname { $_.name -replace ".html",".php" }

이것은 PowerShell에서 작동합니다. Windows 7 또는 Vista가있는 경우 기본적으로 설치되어 있어야합니다. XP를 사용하는 경우 여기에서 다운로드 할 수 있습니다 .


Soandos, Chapeau !!!!!!!!!!!! 이 측면에서 많은 고맙습니다, 매력처럼 작동합니다.
Charles

@Charles, 문제가 해결되면 확인 표시를 클릭하여 문제가있는 다른 모든 사용자가 문제가 있음을 알 수 있도록합니다. 수퍼 유저에 오신 것을 환영합니다.
soandos

3

명령 행에서 :

for /f "delims=*" %a in ('dir *.html /b /s') do ren "%a" *.php

참고 : *.html다른 와일드 카드를 대체 할 수 있습니다 ( 예 :) d:\www\*.html.

주 2 : 배치 파일 내에서 명령을 사용하는 경우, 대체 %a%%a(왜 나 한테 물어하지 않음)


왜 그래 "delims=*"?  "delims="충분히 좋은 (즉, 당신은 왜의 구분 지정합니까해야 *?을
G-남자 '는 분석 재개 모니카'말한다

1

Flexible Renamer는 여러 가지 유형의 이름 바꾸기 검색 / 대체를 처리하는 훌륭한 작은 프로그램입니다. 정규 표현식을 허용하며 공통 패턴이 사전 정의되어 있습니다. 또한 하위 폴더에 항목을 포함 시키거나 폴더 자체에서 작업 할 수 있습니다. 또한 모든 변경 사항을 미리 볼 수 있습니다. 몇 년 동안 사용해 왔으며 강력히 추천합니다.

http://download.cnet.com/Flexible-Renamer/3000-2248_4-28799.html



당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.