У меня очень ограниченные знания в области кодирования, если они вообще есть. Поэтому я не уверен, можно ли это сделать через создание пакетного файла.
Кстати, у меня Windows 10.
У меня большая база данных папок «клиентов». Возможно, это будет родительская папка, если нет.. Внутри есть подпапки для каждой буквы алфавита, которая является первой буквой для каждого имени клиента. Так что это будет выглядеть так:
C:Клиент/A/Адамс, Билл
C:Клиент/A/Андерсон, Джилл
C:Клиент/B/Бургундия, Джек
..и т. д. Клиентов тысячи.
В каждой папке клиента (Адамс, Билл и т.д.) мне нужно создать подпапку с названием ID & PFP.
Можно ли создать пакет, который автоматически пройдет по всем подпапкам с буквами и последующим подпапкам клиентов внутри них и создаст подпапки «ID & PFP» внутри каждого имени клиента?
Более того, некоторые из указанных подпапок уже имеют папку с именем 'ID'. Есть ли код, который мог бы сказать создать эти подпапки в папках с именами клиентов - если нет папки с именем 'ID'.. Если есть папка с именем 'ID', переименуйте ее в 'ID & PFP'?
С наилучшими пожеланиями
решение1
Следующий пакет — это то, что вам нужно.
правка: добавлена подпапка «ID» case
@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 и т.д....
По сути, этот скрипт зайдет в каждую подпапку, в которой он находится, а затем в каждую следующую подпапку benethe, чтобы создать папку.
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