Tenho conhecimento muito limitado ou algum conhecimento de codificação. Portanto, não tenho certeza se isso pode ser feito criando um arquivo em lote.
Estou no Windows 10, aliás.
Eu tenho um grande banco de dados de pastas de 'clientes'. Talvez esta seja a pasta pai, caso contrário. Existem subpastas para cada letra do alfabeto, que é a primeira letra de cada nome de cliente. Então iria
C:Cliente/A/Adams, Bill
C:Cliente/A/Anderson, Jill
C:Cliente/B/Borgonha, Jack
..e assim por diante. Existem milhares de clientes.
Em cada pasta de cliente específica (adams, bill, etc.), preciso criar uma subpasta chamada ID & PFP
Existe algum lote que posso criar para percorrer automaticamente todas as subpastas com letras e as subpastas de cliente subsequentes dentro delas e criar as subpastas 'ID e PFP' dentro de cada nome de cliente?
Além disso, algumas dessas subpastas já possuem uma pasta chamada 'ID'. Existe um código que poderia dizer criar essas subpastas dentro das pastas de nomes do cliente - se não houver uma pasta chamada 'ID'. Se houver uma pasta chamada 'ID', renomeie-a para 'ID & PFP'?
Muito gentil cumprimentos
Responder1
O lote a seguir é o que você precisa.
editar: adicionado caso "ID" da subpasta
@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
Coloque isso em um arquivo em lote e coloque-o na pasta pai onde você tem a pasta a,b,c etc....
Basicamente, este script irá para cada subpasta em que está e, em seguida, irá para cada subpasta seguinte para criar uma pasta.
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
Responder2
Bem, o código a seguir fará tudo o que você pediu, fique à vontade para copiá-lo dentro de algum editor ".txt" e salvá-lo com a extensão ".bat" (por exemplo: "dirHelper.bat").
Não se esqueça de alterar uma segunda linha de "CD C:\raiz"para algo que corresponda ao seu caso -"CD C:\Cliente" e sinta-se à vontade para abandonar as instruções "echo", que as adicionei apenas para ajudá-lo a entender o que está acontecendo enquanto você está testando ou para fins de registro na execução
@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