하위 폴더를 생성하고 기존 하위 폴더의 이름을 바꾸는 배치 파일을 생성할 수 있습니까?

하위 폴더를 생성하고 기존 하위 폴더의 이름을 바꾸는 배치 파일을 생성할 수 있습니까?

코딩에 대한 지식이 매우 제한되어 있습니다. 그래서 배치 파일을 만들어서 이 작업을 수행할 수 있는지 잘 모르겠습니다.

저는 Windows 10을 사용하고 있습니다.

나는 '클라이언트' 폴더의 대규모 데이터베이스를 가지고 있습니다. 그렇지 않은 경우 아마도 이것이 상위 폴더일 것입니다. 각 클라이언트 이름의 첫 번째 문자인 알파벳의 각 문자에 대한 하위 폴더가 있습니다. 그래서 갈 것입니다

C:고객/A/Adams, Bill

C:클라이언트/A/앤더슨, 질

C:클라이언트/B/버건디, 잭

..등등. 수천명의 고객이 있습니다.

모든 특정 클라이언트 폴더(adams, bill 등) 아래에 ID & PFP라는 하위 폴더를 만들어야 합니다.

문자로 표시된 모든 하위 폴더와 그 안에 있는 후속 클라이언트 하위 폴더를 자동으로 살펴보고 모든 단일 클라이언트 이름 내에 'ID & PFP' 하위 폴더를 생성하기 위해 생성할 수 있는 배치가 있습니까?

또한 해당 하위 폴더 중 일부에는 이미 'ID'라는 폴더가 있습니다. 'ID'라는 폴더가 없는 경우 클라이언트 이름 폴더 내에 해당 하위 폴더를 생성할 수 있는 코드가 있습니까? 'ID'라는 폴더가 있으면 이름을 'ID & PFP'로 바꾸나요?

매우 친절합니다

답변1

다음 배치가 필요한 것입니다.
편집: 하위 폴더 "ID" 케이스 추가

@echo off
setlocal
  for /f  %%b in ('dir /b /a:d') do (
      rem enter the directory
      pushd %%b
      echo In Directory: %%b

    for /f  %%c in ('dir /b /a:d') do (
      rem enter the directory
      pushd %%c
      echo In Directory: %%c

      IF EXIST ID (
        rem Folder "ID" does exist 
        echo Folder "ID" Renamed to "ID & PFP"
        rename "ID"  "ID & PFP"
        ) ELSE (
        rem Folder "ID" does not exist
        rem create folder
        md "ID & PFP"
        echo Folder: "ID & PFP" created
      )


      rem leave the directory
      popd
     )
      rem leave the directory
      popd
  )
  pause >nul
endlocal

이것을 배치 파일에 넣고 a, b, c 폴더가 있는 상위 폴더에 넣으십시오....

기본적으로 이 스크립트는 해당 스크립트가 있는 모든 하위 폴더로 이동한 다음 그 아래의 모든 다음 하위 폴더로 이동하여 폴더를 만듭니다.

In Directory: test
In Directory: child
Folder "ID" Renamed to "ID & PFP"
In Directory: child1
Folder: "ID & PFP" created
In Directory: child2
Folder: "ID & PFP" created
In Directory: test1
In Directory: child
Folder: "ID & PFP" created
In Directory: test2
In Directory: child
Ein Unterverzeichnis oder eine Datei mit dem Namen "ID & PFP" existiert bereits.
Folder: "ID & PFP" created

답변2

다음 코드는 귀하가 요청한 모든 작업을 수행합니다. ".txt" 편집기 내부에 자유롭게 복사하여 ".bat" 확장명(예: "dirHelper.bat")으로 저장하세요.

"에서 두 번째 줄을 변경하는 것을 잊지 마세요.CD C:\루트" 귀하의 사건에 해당하는 것으로 - "CD C:\클라이언트" 테스트하는 동안 무슨 일이 일어나고 있는지 이해하는 데 도움을 주거나 실행 시 로그 목적으로 "에코" 문을 추가했습니다.

@Echo Off
CD C:\root 
echo entered %cd% directory
FOR /D %%G in ("*") DO (
    CD %%G 
    echo entered %cd%\%%G directory
    FOR /D %%N in ("*") DO (
        cd %%N
        echo entered %cd%\%%G\%%N directory
        if EXIST ID (
            rename ID "ID & PFP"
            echo Found ID folder inside %cd%\%%G\%%N
            echo ID folder renamed to "ID & PFP"
            CD ..\
        ) else (
            if EXIST "ID & PFP" (
                echo "ID & PFP folder already exist here:" %cd%\%%G\%%N
                CD ..\
            ) else (
                md "ID & PFP"
                echo created "ID & PFP" folder inside %cd%\%%G\%%N directory
                CD ..\

                )
        )
    )
    CD ..\
)
PAUSE

관련 정보