Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Присвоить переменным значения имен файлов в папке

Ответить
Настройки темы
CMD/BAT - [решено] Присвоить переменным значения имен файлов в папке

Новый участник


Сообщения: 3
Благодарности: 0

Профиль | Отправить PM | Цитировать


День добрый, помогите решить задачу, суть следующая: Имеется папка, где собраны сертификаты (*.p7b) всех пользователей организации (Иванов.p7b, Петров.p7b, Сидоров.p7b, Федоров.p7b,..). На данный момент, после увольнения (Иванов) и прихода нового сотрудника (Петров) приходится лезть в простенько созданный cmd-файл и руками менять присвоенные переменные, к примеру "set user20=Иванов.p7b" на "set user20=Петров.p7b".
Хотелось бы, что бы батник сам считал содержимое папки, где находятся сертификаты, и каждой переменной user1, user2, user3,.. присвоил соответствующее имя файла.
Пробовал все это сделать циклом For, но там у меня, либо переменной присваивается последний файл, либо просто выводится список файлов.

Отправлено: 12:19, 10-10-2016

 

Ветеран


Сообщения: 27449
Благодарности: 8087

Профиль | Отправить PM | Цитировать


Покажите код Вашего пакетного файла. Опишите словами, что он делает.
Это сообщение посчитали полезным следующие участники:

Отправлено: 13:17, 10-10-2016 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Ветеран


Contributor


Сообщения: 2715
Благодарности: 1688

Профиль | Отправить PM | Цитировать


Тупо присвоить - пожалуйста. А зачем это нужно? Как с этим дальше поступать?
Код: Выделить весь код
@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

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.


Последний раз редактировалось megaloman, 10-10-2016 в 13:36.

Это сообщение посчитали полезным следующие участники:

Отправлено: 13:25, 10-10-2016 | #3


Новый участник


Сообщения: 3
Благодарности: 0

Профиль | Отправить PM | Цитировать


Цитата 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.
Спасибо Вам за код, вышло, как раз то, что я и хотел.

Последний раз редактировалось kopbetby, 12-10-2016 в 10:35.


Отправлено: 13:57, 10-10-2016 | #4


Ветеран


Contributor


Сообщения: 2715
Благодарности: 1688

Профиль | Отправить PM | Цитировать


kopbetby, А не лучше ли связать имя файла сертификата с именем компьютера или логином пользователя
echo %ComputerName% %UserName%

-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.

Это сообщение посчитали полезным следующие участники:

Отправлено: 14:08, 10-10-2016 | #5


Новый участник


Сообщения: 3
Благодарности: 0

Профиль | Отправить PM | Цитировать


megaloman,
Спасибо за наводку, на счет %UserName% надо подумать. Однако и ручной выбор лишним не будет.

Отправлено: 14:26, 10-10-2016 | #6



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] Присвоить переменным значения имен файлов в папке

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Присвоить дате изменения папке новую дату ALARMus Хочу все знать 15 10-01-2016 11:00
CMD/BAT - переменная меняется внутри цикла for, последовательно принимая значения имен файлов islily Скриптовые языки администрирования Windows 18 02-12-2014 22:14
[решено] Присвоить значения переменной из текстового файла Cem AutoIt 9 05-03-2014 19:11
[решено] Как присвоить папке определенную иконку Ivan_009 Автоматическая установка Windows 2000/XP/2003 15 03-09-2013 15:24
Безопасность - присвоить папке пароль dgek Программное обеспечение Windows 10 05-02-2010 08:30




 
Переход