과학&기술
[Powershell] 하위 특정 폴더 삭제 & 각 상위 폴더로 일괄 이동시키기
파프리카닷컴
2022. 8. 27. 10:48
Windows- Powershell 에서 파일 조작을 하고자 한다.
리눅스 명령어가 잘 안먹혀서 이것저것 찾아보고 정리함.
■ A 폴더 밑으로 많은 폴더들이 존재. 각 폴더는 0~100 이름으로 됐으며 각 폴더 내에 test 폴더와 train 폴더가 존재.
test 폴더들을 지우고자 한다. 아래와 같은 상태.
(1) A폴더 까지 간다.
> cd A
(2) 다음 폴더가 무엇이 되든 그 폴더 밑의 test폴더를 삭제
(삭제 명령어는 현재 위치 등을 고려하여 유의할 것. 본인책임)
> del *\test
■ 다음은 test 와 함께 존재하던 train 폴더 내 파일을 각자 상위 폴더로 이동시키고자 한다.
(1) 메모장을 연다.
(2) 아래 스크립트를 입력. \0~3 폴더들\train\모든 파일들을 \모든폴더\ 위치로 옮기는 작업이다. 작업 후 train 폴더들이 모두 삭제되는 코드이므로 주의. 지우고싶지 않다면 RMDIR ~ 라인의 코드 삭제.
@echo off
for /f "tokens=* delims=" %%a in ('dir /a:d /b "%~dp0"') do (
copy "%~dp0%%a\train\*.*" "%~dp0%%a\"
RMDIR /q /s "%~dp0%%a\train"
)
(3) 저장시 filename.bat 와 같이 이름을 지어 A폴더에 저장.
(4) powershell에서 > filename.bat 입력하여 실행 (혹시 잘못 처리될 수 있으니 파일 백업 추천)
■ 모든 test 폴더 삭제와 train 폴더 내 파일들을 상위로 복사하는 과정을 거치면 아래와 같이 됨