파일을 별도의 폴더로 이동

파일을 별도의 폴더로 이동

하루에 여러 장의 스크린샷을 만드는 폴더가 있습니다 [projectname].[date].[time].png.

따라서 다음과 같습니다.

ProjectAlpha.2020-11-10.09-53-21.png
ProjectAlpha.2021-05-20.15-10-43.png
ProjectBeta.2020-11-10.09-53-28.png
ProjectBeta.2021-05-20.15-11-24.png
ProjectBeta.2021-07-27.11-34-42.png
ProjectDelta.2021-05-20.15-19-01.png
ProjectDelta.2021-05-20.15-09-42.png
ProjectDelta.2021-07-27.11-35-03.png

첫 번째 '점' 앞의 부분을 폴더 이름으로 지정한 다음 모두 해당 폴더로 이동하고 싶습니다.

결과는 다음과 같습니다.

├── ProjectAlpha
│   ├── ProjectAlpha.2020-11-10.09-53-21.png
│   └── ProjectAlpha.2021-05-20.15-10-43.png
└── ProjectBeta
│   ├── ProjectBeta.2020-11-10.09-53-28.png
│   ├── ProjectBeta.2021-05-20.15-11-24.png
│   └── ProjectBeta.2021-07-27.11-34-42.png
└── ProjectDelta
    ├── ProjectDelta.2021-05-20.15-19-01.png
    └── ProjectDelta.2021-05-20.15-09-42.png

나는 비슷한 것을 발견했습니다이 파워셸게시물과이 CMD게시했지만 내 상황에 맞게 작동하도록 할 수 없습니다.

이 문제를 도와줄 수 있는 사람이 있나요?

답변1

이와 같은 코드를 메모장에 붙여넣고 원하는 이름으로 *.bat 확장자로 저장하세요. 다음으로 프로젝트(이미지)가 있는 폴더를 배치 파일로 끌어다 놓습니다...

@echo off

:: Please drag and drop the folder where the projects are to this batch script

if exist "%~1" (if not exist "%~1\" exit) else (exit)

set "Folder=%~1"
Set Files=*.jpg *.png *.gif *.webp

pushd "%Folder%"

for /f "delims=" %%a in ('dir /b /a-d /on %Files%') do for /f "delims=." %%b in ("%%~a") do (
                                                                                             if not exist "%%b" md "%%b"
                                                                                             move "%%a" "%%b"
                                                                                            )
exit

여기에 이미지 설명을 입력하세요

답변2

Powershell을 사용하여 다음을 시도해 보세요.

$mypath = Get-Location
$files = Get-ChildItem

$files | Where { $_ -match "project[a-z]+"} | 
ForEach { 
            if ( !( Test-Path -Path $Matches[0] )) { 
                    New-Item -Path   $Matches[0] -ItemType Directory 
                }

            $files = $Matches[0] + "*.*"
            Move-Item -Path $files -Destination $Matches[0] 
    }

관련 정보