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