Показать полную графическую версию : [решено] Присвоить переменным значения имен файлов в папке
kopbetby
10-10-2016, 12:19
День добрый, помогите решить задачу, суть следующая: Имеется папка, где собраны сертификаты (*.p7b) всех пользователей организации (Иванов.p7b, Петров.p7b, Сидоров.p7b, Федоров.p7b,..). На данный момент, после увольнения (Иванов) и прихода нового сотрудника (Петров) приходится лезть в простенько созданный cmd-файл и руками менять присвоенные переменные, к примеру "set user20=Иванов.p7b" на "set user20=Петров.p7b".
Хотелось бы, что бы батник сам считал содержимое папки, где находятся сертификаты, и каждой переменной user1, user2, user3,.. присвоил соответствующее имя файла.
Пробовал все это сделать циклом For, но там у меня, либо переменной присваивается последний файл, либо просто выводится список файлов.
Покажите код Вашего пакетного файла. Опишите словами, что он делает.
megaloman
10-10-2016, 13:25
Тупо присвоить - пожалуйста. А зачем это нужно? Как с этим дальше поступать?@Echo Off
cls
SetLocal EnableExtensions EnableDelayedExpansion
Set "InMask=Z:\Box_In\*.p7b"
Set /A Count=0
FOR /F "usebackq delims=" %%f IN (`Dir "%InMask%" /A:-D /B /O:N 2^>nul`) DO (
Set /A Count+=1
Set User!Count!=%%f
)
FOR /L %%i IN (1,1,%Count%) DO Echo !User%%i!
pause
kopbetby
10-10-2016, 13:57
Цитата Iska:
Покажите код Вашего пакетного файла. Опишите словами, что он делает »
@Echo off
set user1=Иванов.p7b
set user2=Петров.p7b
set user3=Сидоров.p7b
:m1
Echo Выберите сертификат для установки:
Echo.
Echo 1 - %user1%
Echo 2 - %user2%
Echo 3 - %user3%
echo.
Set /p choice="Введите номер вашего сертификата, затем нажмите ВВОД: "
cls
call set x=%%user%choice%%%
del %temp%\*.p7b && xcopy ..\sert\gosuok\%x% %temp%
if errorlevel 1 cls && echo ВВЕДЕН НЕВЕРНЫЙ НОМЕР! && Echo. && goto m1
Echo.
Код самый примитивный, выводится список сертификатов, пользователь выбирает свой, вводит цифру, очищается папка Temp от p7b файлов и туда копируется выбранный пользователем сертификат.
Цитата megaloman:
Как с этим дальше поступать? »
Дальше, сторонним софтом идет импорт выбранного сертификата из папки Temp.
Спасибо Вам за код, вышло, как раз то, что я и хотел.
megaloman
10-10-2016, 14:08
kopbetby, А не лучше ли связать имя файла сертификата с именем компьютера или логином пользователя
echo %ComputerName% %UserName%
kopbetby
10-10-2016, 14:26
megaloman,
Спасибо за наводку, на счет %UserName% надо подумать. Однако и ручной выбор лишним не будет. :)
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.