Tengo conocimientos muy limitados o nulos sobre codificación. Así que no estoy seguro de si esto se puede hacer mediante la creación de un archivo por lotes.
Estoy en Windows 10 por cierto.
Tengo una gran base de datos de carpetas de 'clientes'. Quizás esta sería la carpeta principal, si no. Hay subcarpetas dentro para cada letra del alfabeto, que es la primera letra de cada nombre de cliente. así iría
C: Cliente/A/Adams, Bill
C:Cliente/A/Anderson, Jill
C:Cliente/B/Borgoña, Jack
..etcétera. Hay miles de clientes.
En todas y cada una de las carpetas de clientes específicas (adams, bill, etc.), necesito crear una subcarpeta llamada ID y PFP.
¿Hay algún lote que pueda crear para revisar automáticamente todas las subcarpetas con letras y las subcarpetas de cliente posteriores dentro de ellas y crear las subcarpetas 'ID y PFP' dentro de cada nombre de cliente?
Además, algunas de dichas subcarpetas ya tienen una carpeta llamada 'ID'. ¿Existe algún código que pueda decir crear esas subcarpetas dentro de las carpetas de nombres de clientes, si no hay una carpeta llamada 'ID'? Si hay una carpeta llamada 'ID', ¿cambiarle el nombre a 'ID y PFP'?
Saludos muy amables
Respuesta1
El siguiente lote es lo que necesita.
editar: caso agregado de subcarpeta "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
Coloque esto en un archivo por lotes y colóquelo en la carpeta principal donde tiene la carpeta a,b,c, etc.
Básicamente, este script irá a cada subcarpeta en la que se encuentre y luego irá a cada subcarpeta siguiente para crear una carpeta.
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
Respuesta2
Bueno, el siguiente código hará todo lo que usted solicitó, no dude en copiarlo dentro de algún editor ".txt" y guardarlo con la extensión ".bat" (por ejemplo: "dirHelper.bat").
No olvides cambiar una segunda línea de "CD C:\raíz"a algo que corresponda a tu caso -"CD C:\Cliente" y siéntase libre de deshacerse de las declaraciones de "eco". Las agregué solo para ayudarlo a comprender lo que sucede mientras realiza la prueba o para fines de registro durante la ejecución.
@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