본문으로 바로가기
반응형

rename filename foldername


윈도우 업데이트 파일을 받으면 cab로 되어 있는데 이것을 풀면 MSP 파일이 나온다.

그러나 이 파일은 

access-x-none.MSP 와 같이 짤막하고 KB로 시작하는 핫픽스 이름도 알 수 없다.


그래서 나는 cab 파일을 저장을 할때 일단 access-x-none-KB4018351 과 같이 이름을 붙여서 저장했다.


그리고 이 파일을 폴더로 풀면

access-x-none-KB4018351\access-x-none.MSP

이렇게 될것이다.


따라서 여기에 파일이름을 폴더이름으로 교체하면

access-x-none-KB4018351\access-x-none-KB4018351.MSP

이렇게 폴더명과 같게 바뀐다.


혹은 용도에 따라서, 파일명앞에 폴더이름을 추가로 붙일 수 도 있겠다.


핫픽스 파일이 한두개가 아니므로 일단 20개를 받았다면, 20개 모두 7z 압축풀기로 개별폴더에 풀어주기를 한다.


이렇게 풀려진 각각 다른 KB 이름하위의 msp들의 이름을 KB~~~를 포함하는 폴더이름으로 교체한다.

모든 폴더가 update 폴더 하위에 서브폴더로 있다고 할때 아래와 같이 준다.


아래는 파일명 앞에 "폴더명_" 을 추가하는 배치파일 내용이다.


https://superuser.com/questions/516082/add-folder-name-to-beginning-of-filename


@echo off

pushd "update"

for /d %%D in (*) do (

  pushd "%%D"

  for /r %%F in (*) do (

    for %%P in ("%%F\..") do (

      ren "%%F" "%%~nxP_%%~nxF"

    )

  )

  popd

)

popd



이부분

ren "%%F" "%%~nxP_%%~nxF"

에서

%%~nxP 이 폴더명

_

%%~nF 파일이름

%%~xF 파일확장자



abc\def.MSP 라고 한다면,

이 MSP파일의 이름은 abc_def.MSP 가 된다


따라서 확장자는 그대로 하고, 폴더명으로 파일명을 변경하고자 한다면


빨간 부분을 다음과 같이 바꾸어준다.


ren "%%F" "%%~nxP%%~xF"

그러면 abc.MSP 가된다.


@echo off

pushd "update"

for /d %%D in (*) do (

  pushd "%%D"

  for /r %%F in (*) do (

    for %%P in ("%%F\..") do (

      ren "%%F" "%%~nxP%%~xF"

    )

  )

  popd

)

popd





반응형