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